Skip to content

Instantly share code, notes, and snippets.

@schmittlauch
Created May 6, 2019 15:22
Show Gist options
  • Save schmittlauch/09ec9c7f72d16c436b55351e7aec5e32 to your computer and use it in GitHub Desktop.
Save schmittlauch/09ec9c7f72d16c436b55351e7aec5e32 to your computer and use it in GitHub Desktop.
(3)(+0000000): Using data directory /home/spiollinux/Zotero
(3)(+0000078): IPC: Initializing pipe at /home/spiollinux/Zotero/pipes/1557153005450
(3)(+0000004): Asynchronously opening database 'zotero'
(3)(+0000000): /home/spiollinux/Zotero/zotero.sqlite
(4)(+0000014): PRAGMA main.locking_mode=EXCLUSIVE
(4)(+0000006): PRAGMA page_size
(4)(+0000002): PRAGMA cache_size=250
(4)(+0000002): PRAGMA foreign_keys=true
(4)(+0000016): SELECT version FROM version WHERE schema='system'
(3)(+0000002): Proxy not required for https://zoteroproxycheck.s3.amazonaws.com/test
(4)(+0000004): SELECT version FROM version WHERE schema='userdata'
(4)(+0000000): SELECT version FROM version WHERE schema='compatibility'
(4)(+0000004): SELECT value FROM settings WHERE setting='db' AND key='integrityCheck'
(3)(+0000000): HTTP GET resource://zotero/schema/userdata.sql
(3)(+0000002): HTTP GET resource://zotero/schema/userdata.sql succeeded with 200
(4)(+0000002): PRAGMA foreign_keys = false
(4)(+0000000): Beginning DB transaction QlReSU7k
(3)(+0000004): HTTP GET resource://zotero/schema/system.sql
(3)(+0000002): HTTP GET resource://zotero/schema/system.sql succeeded with 200
(3)(+0000002): Updating custom tables
(4)(+0000000): DELETE FROM itemTypesCombined
(4)(+0000002): SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND tbl_name=? ['customItemTypes']
(4)(+0000002): DELETE FROM fieldsCombined WHERE fieldID NOT IN (SELECT fieldID FROM itemData)
(4)(+0000002): DELETE FROM itemTypeFieldsCombined
(4)(+0000002): DELETE FROM baseFieldMappingsCombined
(4)(+0000000): INSERT INTO itemTypesCombined SELECT itemTypeID, typeName, display, 0 AS custom FROM itemTypes UNION SELECT customItemTypeID + 10000 AS itemTypeID, typeName, display, 1 AS custom FROM customItemTypes
(4)(+0000002): INSERT OR IGNORE INTO fieldsCombined SELECT fieldID, fieldName, NULL AS label, fieldFormatID, 0 AS custom FROM fields UNION SELECT customFieldID + 10000 AS fieldID, fieldName, label, NULL, 1 AS custom FROM customFields
(4)(+0000004): INSERT INTO itemTypeFieldsCombined SELECT itemTypeID, fieldID, hide, orderIndex FROM itemTypeFields UNION SELECT customItemTypeID + 10000 AS itemTypeID, COALESCE(fieldID, customFieldID + 10000) AS fieldID, hide, orderIndex FROM customItemTypeFields
(4)(+0000002): INSERT INTO baseFieldMappingsCombined SELECT itemTypeID, baseFieldID, fieldID FROM baseFieldMappings UNION SELECT customItemTypeID + 10000 AS itemTypeID, baseFieldID, customFieldID + 10000 AS fieldID FROM customBaseFieldMappings
(3)(+0000002): HTTP GET resource://zotero/schema/userdata.sql
(3)(+0000002): HTTP GET resource://zotero/schema/userdata.sql succeeded with 200
(4)(+0000000): SELECT version FROM version WHERE schema='triggers'
(3)(+0000002): HTTP GET resource://zotero/schema/triggers.sql
(3)(+0000002): HTTP GET resource://zotero/schema/triggers.sql succeeded with 200
(3)(+0000000): Updating custom tables
(4)(+0000000): DELETE FROM itemTypesCombined
(4)(+0000002): DELETE FROM fieldsCombined WHERE fieldID NOT IN (SELECT fieldID FROM itemData)
(4)(+0000000): DELETE FROM itemTypeFieldsCombined
(4)(+0000002): DELETE FROM baseFieldMappingsCombined
(4)(+0000000): INSERT INTO itemTypesCombined SELECT itemTypeID, typeName, display, 0 AS custom FROM itemTypes UNION SELECT customItemTypeID + 10000 AS itemTypeID, typeName, display, 1 AS custom FROM customItemTypes
(4)(+0000002): INSERT OR IGNORE INTO fieldsCombined SELECT fieldID, fieldName, NULL AS label, fieldFormatID, 0 AS custom FROM fields UNION SELECT customFieldID + 10000 AS fieldID, fieldName, label, NULL, 1 AS custom FROM customFields
(4)(+0000000): INSERT INTO itemTypeFieldsCombined SELECT itemTypeID, fieldID, hide, orderIndex FROM itemTypeFields UNION SELECT customItemTypeID + 10000 AS itemTypeID, COALESCE(fieldID, customFieldID + 10000) AS fieldID, hide, orderIndex FROM customItemTypeFields
(4)(+0000002): INSERT INTO baseFieldMappingsCombined SELECT itemTypeID, baseFieldID, fieldID FROM baseFieldMappings UNION SELECT customItemTypeID + 10000 AS itemTypeID, baseFieldID, customFieldID + 10000 AS fieldID FROM customBaseFieldMappings
(4)(+0000034): Committed DB transaction QlReSU7k
(4)(+0000002): PRAGMA foreign_keys = true
(4)(+0000002): Beginning DB transaction zTo908mb
(4)(+0000002): SELECT value FROM settings WHERE setting='client' AND key='lastVersion'
(4)(+0000002): Committed DB transaction zTo908mb
(4)(+0000002): SELECT key, value FROM settings WHERE setting='account'
(4)(+0000002): SELECT L.libraryID, L.type AS _libraryType, L.editable AS _libraryEditable, L.filesEditable AS _libraryFilesEditable, L.version AS _libraryVersion, L.storageVersion AS _libraryStorageVersion, L.lastSync AS _libraryLastSync, L.archived AS _libraryArchived, (SELECT COUNT(*)>0 FROM collections C WHERE C.libraryID=L.libraryID) AS hasCollections, (SELECT COUNT(*)>0 FROM savedSearches S WHERE S.libraryID=L.libraryID) AS hasSearches FROM libraries L WHERE type NOT IN (?,?) ['feed', 'group']
(4)(+0000004): SELECT L.libraryID, L.type AS _libraryType, L.editable AS _libraryEditable, L.filesEditable AS _libraryFilesEditable, L.version AS _libraryVersion, L.storageVersion AS _libraryStorageVersion, L.lastSync AS _libraryLastSync, L.archived AS _libraryArchived, (SELECT COUNT(*)>0 FROM collections C WHERE C.libraryID=L.libraryID) AS hasCollections, (SELECT COUNT(*)>0 FROM savedSearches S WHERE S.libraryID=L.libraryID) AS hasSearches, F.name AS _feedName, F.url AS _feedUrl, F.lastUpdate AS _feedLastUpdate, F.lastCheck AS _feedLastCheck, F.lastCheckError AS _feedLastCheckError, F.cleanupUnreadAfter AS _feedCleanupUnreadAfter, F.cleanupReadAfter AS _feedCleanupReadAfter, F.refreshInterval AS _feedRefreshInterval, (SELECT COUNT(*) FROM items I JOIN feedItems FI USING (itemID) WHERE I.libraryID=F.libraryID AND FI.readTime IS NULL) AS _feedUnreadCount FROM feeds F JOIN libraries L USING (libraryID)
(4)(+0000000): SELECT L.libraryID, L.type AS _libraryType, L.editable AS _libraryEditable, L.filesEditable AS _libraryFilesEditable, L.version AS _libraryVersion, L.storageVersion AS _libraryStorageVersion, L.lastSync AS _libraryLastSync, L.archived AS _libraryArchived, (SELECT COUNT(*)>0 FROM collections C WHERE C.libraryID=L.libraryID) AS hasCollections, (SELECT COUNT(*)>0 FROM savedSearches S WHERE S.libraryID=L.libraryID) AS hasSearches, G.groupID, G.name AS _groupName, G.description AS _groupDescription, G.version AS _groupVersion FROM groups G JOIN libraries L USING (libraryID)
(4)(+0000004): SELECT itemTypeID AS id, typeName AS name, custom FROM itemTypesCombined
(4)(+0000002): SELECT itemTypeID AS id, typeName AS name, custom FROM itemTypesCombined WHERE (display=2 AND itemTypeID!=5) LIMIT 5
(4)(+0000002): SELECT itemTypeID AS id, typeName AS name, custom FROM itemTypesCombined WHERE display IN (1,2)
(4)(+0000002): SELECT itemTypeID AS id, typeName AS name, custom FROM itemTypesCombined WHERE display=0
(4)(+0000000): SELECT customItemTypeID AS id, label, icon FROM customItemTypes
(4)(+0000002): SELECT * FROM fieldFormats
(4)(+0000002): SELECT * FROM fieldsCombined
(4)(+0000002): SELECT fieldID, itemTypeID FROM itemTypeFieldsCombined
(4)(+0000014): SELECT DISTINCT baseFieldID FROM baseFieldMappingsCombined
(4)(+0000008): SELECT IT.itemTypeID, F.fieldID AS baseFieldID, BFM.fieldID FROM itemTypesCombined IT LEFT JOIN fieldsCombined F LEFT JOIN baseFieldMappingsCombined BFM ON (IT.itemTypeID=BFM.itemTypeID AND F.fieldID=BFM.baseFieldID)
(4)(+0000044): SELECT DISTINCT baseFieldID FROM baseFieldMappingsCombined
(4)(+0000076): SELECT itemTypeID, baseFieldID, fieldID, fieldName FROM baseFieldMappingsCombined JOIN fieldsCombined USING (fieldID)
(4)(+0000056): SELECT DISTINCT fieldID FROM baseFieldMappingsCombined
(3)(+0000002): zotero-better-bibtex: loading content/BetterBibTeX.ts
(3)(+0000000): zotero-better-bibtex: loading content/better-bibtex.ts
(3)(+0000000): zotero-better-bibtex: loading content/prefs.ts
(3)(+0000000): zotero-better-bibtex: loading content/debug.ts
(3)(+0000000): zotero-better-bibtex: loading content/logger.ts
(3)(+0000000): zotero-better-bibtex: loaded content/logger.ts
(3)(+0000000): zotero-better-bibtex: loaded content/debug.ts
(3)(+0000000): zotero-better-bibtex: loading content/events.ts
(3)(+0000004): zotero-better-bibtex: loading content/monkey-patch.ts
(3)(+0000000): zotero-better-bibtex: loaded content/monkey-patch.ts
(3)(+0000000): {better-bibtex +null} events: handler registered for preference-changed
(3)(+0000000): {better-bibtex +0} events: handler registered for items-changed
(3)(+0000000): {better-bibtex +0} events: handler registered for items-removed
(3)(+0000000): {better-bibtex +0} events: handler registered for libraries-changed
(3)(+0000000): {better-bibtex +0} events: handler registered for collections-changed
(3)(+0000000): {better-bibtex +0} events: handler registered for collections-removed
(3)(+0000000): {better-bibtex +0} events: handler registered for libraries-removed
(3)(+0000000): {better-bibtex +0} events: handler registered for loaded
(3)(+0000000): zotero-better-bibtex: loaded content/events.ts
(3)(+0000000): zotero-better-bibtex: loading content/zotero-config.ts
(3)(+0000002): {better-bibtex +2} zotero config loaded: {"GUID":"zotero@chnm.gmu.edu","ID":"zotero","CLIENT_NAME":"Zotero","DOMAIN_NAME":"zotero.org","REPOSITORY_URL":"https://repo.zotero.org/repo/","REPOSITORY_CHECK_INTERVAL":86400,"REPOSITORY_RETRY_INTERVAL":3600,"BASE_URI":"http://zotero.org/","WWW_BASE_URL":"https://www.zotero.org/","PROXY_AUTH_URL":"https://zoteroproxycheck.s3.amazonaws.com/test","API_URL":"https://api.zotero.org/","STREAMING_URL":"wss://stream.zotero.org/","SERVICES_URL":"https://services.zotero.org/","API_VERSION":3,"CONNECTOR_MIN_VERSION":"5.0.39","PREF_BRANCH":"extensions.zotero.","BOOKMARKLET_ORIGIN":"https://www.zotero.org","BOOKMARKLET_URL":"https://www.zotero.org/bookmarklet/","START_URL":"https://www.zotero.org/start","QUICK_START_URL":"https://www.zotero.org/support/quick_start_guide","PDF_TOOLS_URL":"https://www.zotero.org/download/xpdf/","SUPPORT_URL":"https://www.zotero.org/support/","TROUBLESHOOTING_URL":"https://www.zotero.org/support/getting_help","FEEDBACK_URL":"https://forums.zotero.org/","CONNECTORS_URL":"https://www.zotero.org/download/connectors","Zotero":{"version":"5.0.66","platform":"Linux x86_64","oscpu":"Linux x86_64","locale":"de","appName":"Zotero","appVersion":"5.0.66","isZotero":true,"isJurisM":false}}
(3)(+0000000): zotero-better-bibtex: loaded content/zotero-config.ts
(3)(+0000000): zotero-better-bibtex: loaded content/prefs.ts
(3)(+0000000): zotero-better-bibtex: loading content/pull-export.ts
(3)(+0000000): zotero-better-bibtex: loading content/translators.ts
(3)(+0000000): zotero-better-bibtex: loading content/db/cache.ts
(3)(+0000000): zotero-better-bibtex: loading content/db/loki.ts
(3)(+0000116): zotero-better-bibtex: loaded content/db/loki.ts
(3)(+0000000): zotero-better-bibtex: loading content/db/store.ts
(3)(+0000000): zotero-better-bibtex: loaded content/db/store.ts
(3)(+0000000): {better-bibtex +116} events: handler registered for preference-changed
(3)(+0000000): zotero-better-bibtex: loaded content/db/cache.ts
(3)(+0000000): zotero-better-bibtex: loading content/db/main.ts
(3)(+0000000): zotero-better-bibtex: loading content/get-items-async.ts
(3)(+0000000): zotero-better-bibtex: loaded content/get-items-async.ts
(3)(+0000000): zotero-better-bibtex: loaded content/db/main.ts
(3)(+0000000): zotero-better-bibtex: loading content/timeout.ts
(3)(+0000002): zotero-better-bibtex: loaded content/timeout.ts
(3)(+0000000): zotero-better-bibtex: loaded content/translators.ts
(3)(+0000000): zotero-better-bibtex: loaded content/pull-export.ts
(3)(+0000000): zotero-better-bibtex: loading content/json-rpc.ts
(3)(+0000000): zotero-better-bibtex: loading content/key-manager.ts
(3)(+0000000): zotero-better-bibtex: loading content/key-manager/kuroshiro.ts
(3)(+0000004): zotero-better-bibtex: loaded content/key-manager/kuroshiro.ts
(3)(+0000000): zotero-better-bibtex: loading content/flash.ts
(3)(+0000000): zotero-better-bibtex: loaded content/flash.ts
(3)(+0000000): zotero-better-bibtex: loading content/arXiv.ts
(3)(+0000000): zotero-better-bibtex: loaded content/arXiv.ts
(3)(+0000000): zotero-better-bibtex: loading content/var-extract.ts
(3)(+0000000): zotero-better-bibtex: loading content/key-manager/get-set.ts
(3)(+0000000): zotero-better-bibtex: loaded content/key-manager/get-set.ts
(3)(+0000000): zotero-better-bibtex: loaded content/var-extract.ts
(3)(+0000000): zotero-better-bibtex: loading content/db/zotero.ts
(3)(+0000000): zotero-better-bibtex: loaded content/db/zotero.ts
(3)(+0000000): zotero-better-bibtex: loading content/key-manager/formatter.ts
(3)(+0000068): zotero-better-bibtex: loading content/journal-abbrev.ts
(3)(+0000000): zotero-better-bibtex: loaded content/journal-abbrev.ts
(3)(+0000000): zotero-better-bibtex: loading content/dateparser.ts
(3)(+0000008): zotero-better-bibtex: loaded content/dateparser.ts
(3)(+0000004): zotero-better-bibtex: loaded content/key-manager/formatter.ts
(3)(+0000000): zotero-better-bibtex: loading content/auto-export.ts
(3)(+0000000): zotero-better-bibtex: loading content/path-search.ts
(3)(+0000000): zotero-better-bibtex: loaded content/path-search.ts
(3)(+0000000): {better-bibtex +86} events: handler registered for preference-changed
(3)(+0000000): {better-bibtex +0} events: handler registered for libraries-changed
(3)(+0000002): {better-bibtex +2} events: handler registered for libraries-removed
(3)(+0000000): {better-bibtex +0} events: handler registered for collections-changed
(3)(+0000000): {better-bibtex +0} events: handler registered for collections-removed
(3)(+0000000): zotero-better-bibtex: loaded content/auto-export.ts
(3)(+0000000): zotero-better-bibtex: loaded content/key-manager.ts
(3)(+0000000): zotero-better-bibtex: loaded content/json-rpc.ts
(3)(+0000000): zotero-better-bibtex: loading content/aux-scanner.ts
(3)(+0000000): zotero-better-bibtex: loaded content/aux-scanner.ts
(3)(+0000000): {better-bibtex +0} Loading Better BibTeX
(3)(+0000000): zotero-better-bibtex: loading content/serializer.ts
(3)(+0000000): zotero-better-bibtex: loaded content/serializer.ts
(3)(+0000000): zotero-better-bibtex: loading content/tex-studio.ts
(3)(+0000000): zotero-better-bibtex: loaded content/tex-studio.ts
(3)(+0000000): zotero-better-bibtex: loading content/cayw.ts
(3)(+0000000): zotero-better-bibtex: loading content/cayw/formatter.ts
(3)(+0000000): zotero-better-bibtex: loaded content/cayw/formatter.ts
(3)(+0000000): zotero-better-bibtex: loading content/escape.ts
(3)(+0000000): zotero-better-bibtex: loaded content/escape.ts
(3)(+0000002): zotero-better-bibtex: loaded content/cayw.ts
(3)(+0000000): zotero-better-bibtex: loading content/qr-check.ts
(3)(+0000000): zotero-better-bibtex: loaded content/qr-check.ts
(3)(+0000000): zotero-better-bibtex: loading content/title-case.ts
(3)(+0000000): zotero-better-bibtex: loaded content/title-case.ts
(3)(+0000000): zotero-better-bibtex: loading content/markupparser.ts
(3)(+0000002): zotero-better-bibtex: loaded content/markupparser.ts
(3)(+0000002): {better-bibtex +6} Loading Better BibTeX: setup done
(3)(+0000000): zotero-better-bibtex: loaded content/better-bibtex.ts
(3)(+0000000): zotero-better-bibtex: loaded content/BetterBibTeX.ts
(4)(+0000002): SELECT itemTypeID, fieldID FROM itemTypeFieldsCombined ORDER BY orderIndex
(4)(+0000010): SELECT creatorTypeID AS id, creatorType AS name FROM creatorTypes
(3)(+0000002): zotero-better-bibtex: loading content/ZoteroPane.ts
(3)(+0000000): zotero-better-bibtex: loaded content/ZoteroPane.ts
(4)(+0000002): SELECT itemTypeID, creatorTypeID AS id, creatorType AS name, primaryField FROM itemTypeCreatorTypes NATURAL JOIN creatorTypes
(3)(+0000000): zotero-better-bibtex: loading content/KeyManager.ts
(3)(+0000000): zotero-better-bibtex: loaded content/KeyManager.ts
(4)(+0000016): SELECT itemTypeID, creatorTypeID FROM itemTypeCreatorTypes WHERE primaryField=1
(4)(+0000004): SELECT fileTypeID AS id, fileType AS name FROM fileTypes
(3)(+0000000): zotero-better-bibtex: loading content/TestSupport.ts
(3)(+0000000): zotero-better-bibtex: loaded content/TestSupport.ts
(4)(+0000002): SELECT charsetID AS id, charset AS name FROM charsets
(4)(+0000004): SELECT predicateID AS id, predicate AS name FROM relationPredicates
(3)(+0000002): zotero-better-bibtex: loading content/ItemPane.ts
(3)(+0000000): zotero-better-bibtex: loaded content/ItemPane.ts
(3)(+0000000): Running unlock callbacks
(3)(+0000002): HTTP server listening on 127.0.0.1:23119
(4)(+0000000): ATTACH ':memory:' AS 'indexing'
(3)(+0000150): Setting mode to note
(3)(+0000006): Setting mode to note
(3)(+0000006): Setting mode to note
(3)(+0000006): Setting mode to note
(4)(+0000014): CREATE TABLE indexing.fulltextWords (word NOT NULL)
(4)(+0000042): SELECT version FROM version WHERE schema='lastsync'
(4)(+0000006): SELECT version FROM version WHERE schema='lastlocalsync'
(4)(+0000002): SELECT name, syncObjectTypeID AS id FROM syncObjectTypes
(3)(+0000006): LibreOfficePlugin: Communication server listening on 127.0.0.1:23116
(3)(+0000000): LibreOfficePlugin: Registering shutdown listener
(3)(+0000000): {better-bibtex +284} Loading Better BibTeX: starting...
(3)(+0000000): {better-bibtex +0} pathSearch: looking for texstudio in {"path":["/run/wrappers/bin","/usr/bin","/usr/sbin"],"pathext":[""],"sep":"/"}
(3)(+0000000): {better-bibtex +0} pathSearch: texstudio not found in ["/run/wrappers/bin","/usr/bin","/usr/sbin"]
(4)(+0000002): Unregistering notifier observer in notifier with id 'itembox_NW'
(3)(+0000012): {better-bibtex +14} TeXstudio: not found
(3)(+0000000): {better-bibtex +0} Startup progress: waiting for Zotero locks...
(3)(+0000002): Registering auto-sync idle observer
(3)(+0000000): Registering URIContentListener
(4)(+0000002): SELECT * FROM proxies
(4)(+0000062): SELECT COALESCE(MAX(collectionID) + 1, 1) FROM collections
(4)(+0000002): SELECT COALESCE(MAX(creatorID) + 1, 1) FROM creators
(3)(+0000000): Getting contents of /home/spiollinux/Zotero/locate/engines.json
(4)(+0000002): SELECT COALESCE(MAX(customFieldID) + 1, 1) FROM customFields
(4)(+0000002): SELECT COALESCE(MAX(customItemTypeID) + 1, 1) FROM customItemTypes
(4)(+0000000): SELECT COALESCE(MAX(valueID) + 1, 1) FROM itemDataValues
(4)(+0000000): SELECT COALESCE(MAX(itemID) + 1, 1) FROM items
(4)(+0000000): SELECT COALESCE(MAX(libraryID) + 1, 1) FROM libraries
(4)(+0000002): SELECT COALESCE(MAX(proxyID) + 1, 1) FROM proxies
(4)(+0000000): SELECT COALESCE(MAX(savedSearchID) + 1, 1) FROM savedSearches
(4)(+0000006): SELECT COALESCE(MAX(tagID) + 1, 1) FROM tags
(4)(+0000004): SELECT ROWID AS id, libraryID, key FROM collections
(4)(+0000002): SELECT ROWID AS id, libraryID, key FROM items
(4)(+0000018): SELECT ROWID AS id, libraryID, key FROM savedSearches
(4)(+0000004): SELECT fieldName FROM fieldsCombined WHERE fieldName NOT IN ('accessDate', 'date', 'pages', 'section','seriesNumber','issue')
(1)(+0000002): Unknown item type 'nsfReviewer'
(1)(+0000000): Unknown item type 'nsfReviewer'
(4)(+0000014): SELECT tagID, name FROM tags
(4)(+0000010): SELECT * FROM creators
(3)(+0000016): Loading collection relations
(4)(+0000000): SELECT * FROM collectionRelations JOIN relationPredicates USING (predicateID)
(3)(+0000002): Loaded collection relations in 2 ms
(3)(+0000000): Loading item relations
(4)(+0000000): SELECT * FROM itemRelations JOIN relationPredicates USING (predicateID)
(3)(+0000002): Loaded item relations in 2 ms
(3)(+0000002): Loading synced settings for library 1
(4)(+0000000): SELECT setting, value, synced, version FROM syncedSettings WHERE libraryID=? [1]
(3)(+0000000): Loading all collections in Meine Bibliothek
(3)(+0000002): Loading primaryData for collections in Meine Bibliothek
(4)(+0000000): SELECT O.collectionID, O.collectionName AS name, O.libraryID, O.key, O.version, O.synced, O.parentCollectionID AS parentID, CP.key AS parentKey, (SELECT COUNT(*) FROM collections WHERE parentCollectionID=O.collectionID) != 0 AS hasChildCollections, (SELECT COUNT(*) FROM collectionItems WHERE collectionID=O.collectionID) != 0 AS hasChildItems FROM collections O LEFT JOIN collections CP ON (O.parentCollectionID=CP.collectionID) WHERE 1 AND O.libraryID=? [1]
(3)(+0000002): Loaded primaryData in Meine Bibliothek in 2 ms
(3)(+0000002): Loading childCollections for collections in Meine Bibliothek
(4)(+0000000): SELECT C1.collectionID, C2.collectionID AS childCollectionID FROM collections C1 LEFT JOIN collections C2 ON (C1.collectionID=C2.parentCollectionID) WHERE C1.libraryID=? [1]
(3)(+0000006): Loaded childCollections in Meine Bibliothek in 6 ms
(3)(+0000000): Loading childItems for collections in Meine Bibliothek
(4)(+0000000): SELECT collectionID, itemID FROM collections LEFT JOIN collectionItems USING (collectionID) WHERE libraryID=? [1]
(3)(+0000002): Loaded childItems in Meine Bibliothek in 2 ms
(3)(+0000002): Loading relations for collections in Meine Bibliothek
(4)(+0000000): SELECT collectionID, predicate, object FROM collections LEFT JOIN collectionRelations USING (collectionID) LEFT JOIN relationPredicates USING (predicateID) WHERE libraryID=? [1]
(3)(+0000002): Loaded relations in Meine Bibliothek in 2 ms
(3)(+0000000): Loaded collections in Meine Bibliothek in 18 ms
(3)(+0000000): Loading all searches in Meine Bibliothek
(3)(+0000002): Loading primaryData for searches in Meine Bibliothek
(4)(+0000000): SELECT O.savedSearchID, O.savedSearchName AS name, O.libraryID, O.key, O.version, O.synced FROM savedSearches O WHERE 1 AND O.libraryID=? [1]
(3)(+0000006): Loaded primaryData in Meine Bibliothek in 6 ms
(3)(+0000002): Loading conditions for searches in Meine Bibliothek
(4)(+0000000): SELECT savedSearchID, searchConditionID, condition, operator, value, required FROM savedSearches LEFT JOIN savedSearchConditions USING (savedSearchID) WHERE libraryID=?ORDER BY savedSearchID, searchConditionID [1]
(3)(+0000002): Loaded conditions in Meine Bibliothek in 0 ms
(3)(+0000000): Loaded searches in Meine Bibliothek in 12 ms
(3)(+0000000): Initializing Quick Copy
(3)(+0000002): Running initialization callbacks
(3)(+0000000): Triggering "zotero-loaded" event
(3)(+0000002): Running unlock callbacks
(3)(+0000000): Initializing Zotero pane
(3)(+0000014): Creating collections view with id lv8SJRbL
(3)(+0000002): Refreshing collections pane
(4)(+0000002): SELECT savedSearchID FROM savedSearches WHERE libraryID=? [1]
(3)(+0000062): Rendering tag selector
(3)(+0000002): Rendering tag list
(4)(+0000048): SELECT itemID FROM items JOIN deletedItems USING (itemID) WHERE libraryID=? [1]
(3)(+0000006): Creating items view with id eKPDwD76
(3)(+0000002): Waiting for items to load for library 1
(3)(+0000004): Loading all items in Meine Bibliothek
(3)(+0000002): Loading primaryData for items in Meine Bibliothek
(4)(+0000000): SELECT O.itemID, O.itemTypeID, O.dateAdded, O.dateModified, O.libraryID, O.key, O.version, O.synced, COALESCE(CASE (SELECT COUNT(*) FROM itemCreators IC LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1) WHEN 0 THEN NULL WHEN 1 THEN (SELECT lastName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1) WHEN 2 THEN (SELECT (SELECT lastName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1) || ' und ' || (SELECT lastName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1,1)) ELSE (SELECT (SELECT lastName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1) || ' et al.' ) END, CASE (SELECT COUNT(*) FROM itemCreators WHERE itemID=O.itemID AND creatorTypeID IN (3)) WHEN 0 THEN NULL WHEN 1 THEN (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3)) WHEN 2 THEN (SELECT (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1) || ' und ' || (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1,1) ) ELSE (SELECT (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1) || ' et al.' ) END, CASE (SELECT COUNT(*) FROM itemCreators WHERE itemID=O.itemID AND creatorTypeID IN (2)) WHEN 0 THEN NULL WHEN 1 THEN (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2)) WHEN 2 THEN (SELECT (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1) || ' und ' || (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1,1) ) ELSE (SELECT (SELECT lastName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1) || ' et al.' ) END) AS firstCreator, COALESCE(CASE (SELECT COUNT(*) FROM itemCreators IC LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1) WHEN 0 THEN NULL WHEN 1 THEN (SELECT lastName || ' ' || firstName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1) WHEN 2 THEN (SELECT (SELECT lastName || ' ' || firstName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1,1)) ELSE (SELECT (SELECT lastName || ' ' || firstName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 1,1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators IC NATURAL JOIN creators LEFT JOIN itemTypeCreatorTypes ITCT ON (IC.creatorTypeID=ITCT.creatorTypeID AND ITCT.itemTypeID=O.itemTypeID) WHERE itemID=O.itemID AND primaryField=1 ORDER BY orderIndex LIMIT 2,1)) END, CASE (SELECT COUNT(*) FROM itemCreators WHERE itemID=O.itemID AND creatorTypeID IN (3)) WHEN 0 THEN NULL WHEN 1 THEN (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3)) WHEN 2 THEN (SELECT (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1,1) ) ELSE (SELECT (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 1,1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (3) ORDER BY orderIndex LIMIT 2,1)) END, CASE (SELECT COUNT(*) FROM itemCreators WHERE itemID=O.itemID AND creatorTypeID IN (2)) WHEN 0 THEN NULL WHEN 1 THEN (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2)) WHEN 2 THEN (SELECT (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1,1) ) ELSE (SELECT (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 1,1) || ' ' || (SELECT lastName || ' ' || firstName FROM itemCreators NATURAL JOIN creators WHERE itemID=O.itemID AND creatorTypeID IN (2) ORDER BY orderIndex LIMIT 2,1)) END) AS sortCreator, DI.itemID IS NOT NULL AS deleted, PI.itemID IS NOT NULL AS inPublications, (CASE O.itemTypeID WHEN 14 THEN IAP.itemID WHEN 1 THEN INoP.itemID END) AS parentID, (CASE O.itemTypeID WHEN 14 THEN IAP.key WHEN 1 THEN INoP.key END) AS parentKey, CS.charset AS attachmentCharset, IA.linkMode AS attachmentLinkMode, IA.contentType AS attachmentContentType, IA.path AS attachmentPath, IA.syncState AS attachmentSyncState, IA.storageModTime AS attachmentSyncedModificationTime, IA.storageHash AS attachmentSyncedHash, FI.guid AS feedItemGUID, FI.readTime AS feedItemReadTime, FI.translatedTime AS feedItemTranslatedTime FROM items O LEFT JOIN itemAttachments IA USING (itemID) LEFT JOIN items IAP ON (IA.parentItemID=IAP.itemID) LEFT JOIN itemNotes INo ON (O.itemID=INo.itemID) LEFT JOIN items INoP ON (INo.parentItemID=INoP.itemID) LEFT JOIN deletedItems DI ON (O.itemID=DI.itemID) LEFT JOIN publicationsItems PI ON (O.itemID=PI.itemID) LEFT JOIN charsets CS ON (IA.charsetID=CS.charsetID) LEFT JOIN feedItems FI ON (FI.itemID=O.itemID) WHERE 1 AND O.libraryID=? [1]
(3)(+0000106): Loaded primaryData in Meine Bibliothek in 106 ms
(3)(+0000002): Loading creators for items in Meine Bibliothek
(4)(+0000000): SELECT itemID, creatorID, creatorTypeID, orderIndex FROM items LEFT JOIN itemCreators USING (itemID) WHERE libraryID=? ORDER BY itemID, orderIndex [1]
(3)(+0000006): Rendering tag selector
(3)(+0000004): Rendering tag list
(3)(+0000016): Tag selector updated
(3)(+0000026): Loaded creators in Meine Bibliothek in 50 ms
(3)(+0000000): Loading itemData for items in Meine Bibliothek
(4)(+0000000): SELECT itemID, fieldID, value FROM items JOIN itemData USING (itemID) JOIN itemDataValues USING (valueID) WHERE libraryID=? AND itemTypeID!=? [1, 1]
(4)(+0000100): SELECT itemID FROM items WHERE libraryID=? [1]
(4)(+0000050): SELECT itemID, title FROM items JOIN itemNotes USING (itemID) WHERE libraryID=? AND itemID NOT IN (SELECT itemID FROM itemAttachments) [1]
(3)(+0000022): Loaded itemData in Meine Bibliothek in 172 ms
(3)(+0000000): Loading note for items in Meine Bibliothek
(4)(+0000002): SELECT itemID, note FROM items JOIN itemNotes USING (itemID) WHERE libraryID=? [1]
(4)(+0000004): SELECT itemID FROM items WHERE libraryID=? AND itemTypeID IN (?, ?) AND itemID NOT IN (SELECT itemID FROM itemNotes) [1, 1, 14]
(3)(+0000002): Loaded note in Meine Bibliothek in 8 ms
(3)(+0000000): Loading childItems for items in Meine Bibliothek
(4)(+0000002): SELECT parentItemID, A.itemID, value AS title, CASE WHEN DI.itemID IS NULL THEN 0 ELSE 1 END AS trashed FROM itemAttachments A JOIN items I ON (A.parentItemID=I.itemID) LEFT JOIN itemData ID ON (fieldID=110 AND A.itemID=ID.itemID) LEFT JOIN itemDataValues IDV USING (valueID) LEFT JOIN deletedItems DI USING (itemID) WHERE libraryID=? ORDER BY parentItemID [1]
(4)(+0000014): SELECT parentItemID, N.itemID, title, CASE WHEN DI.itemID IS NULL THEN 0 ELSE 1 END AS trashed FROM itemNotes N JOIN items I ON (N.parentItemID=I.itemID) LEFT JOIN deletedItems DI USING (itemID) WHERE libraryID=? ORDER BY parentItemID [1]
(4)(+0000002): SELECT itemID FROM items I WHERE libraryID=? AND itemID NOT IN (SELECT itemID FROM itemAttachments UNION SELECT itemID FROM itemNotes) [1]
(3)(+0000004): Loaded childItems in Meine Bibliothek in 22 ms
(3)(+0000000): Loading tags for items in Meine Bibliothek
(4)(+0000002): SELECT itemID, name, type FROM items LEFT JOIN itemTags USING (itemID) LEFT JOIN tags USING (tagID) WHERE libraryID=? [1]
(3)(+0000014): Loaded tags in Meine Bibliothek in 16 ms
(3)(+0000002): Loading collections for items in Meine Bibliothek
(4)(+0000000): SELECT itemID, collectionID FROM items LEFT JOIN collectionItems USING (itemID) WHERE libraryID=? [1]
(3)(+0000008): Loaded collections in Meine Bibliothek in 8 ms
(3)(+0000000): Loading relations for items in Meine Bibliothek
(4)(+0000000): SELECT itemID, predicate, object FROM items LEFT JOIN itemRelations USING (itemID) LEFT JOIN relationPredicates USING (predicateID) WHERE libraryID=? [1]
(3)(+0000006): Loaded relations in Meine Bibliothek in 6 ms
(3)(+0000000): Loaded items in Meine Bibliothek in 396 ms
(3)(+0000002): Setting tree for C6 items view eKPDwD76
(3)(+0000002): Refreshing items list for eKPDwD76
(4)(+0000008): CREATE TEMPORARY TABLE tmpSearchResults_g40V8Gmo AS SELECT itemID FROM items WHERE (itemID NOT IN (SELECT itemID FROM deletedItems) AND itemID NOT IN (SELECT itemID FROM itemNotes WHERE parentItemID IS NOT NULL AND parentItemID IN (SELECT itemID FROM deletedItems)) AND itemID NOT IN (SELECT itemID FROM itemAttachments WHERE parentItemID IS NOT NULL AND parentItemID IN (SELECT itemID FROM deletedItems))) AND (itemID NOT IN (SELECT itemID FROM itemNotes WHERE parentItemID IS NOT NULL) AND itemID NOT IN (SELECT itemID FROM itemAttachments WHERE parentItemID IS NOT NULL)) AND itemID IN (SELECT itemID FROM items WHERE (libraryID=?)) AND itemID IN (SELECT itemID FROM collectionItems WHERE (collectionID IN (6))) [1]
(4)(+0000004): CREATE INDEX tmpSearchResults_g40V8Gmo_itemID ON tmpSearchResults_g40V8Gmo(itemID)
(4)(+0000002): SELECT GROUP_CONCAT(itemID) FROM items WHERE itemID IN (SELECT itemID FROM items WHERE (itemID NOT IN (SELECT itemID FROM deletedItems) AND itemID NOT IN (SELECT itemID FROM itemNotes WHERE parentItemID IS NOT NULL AND parentItemID IN (SELECT itemID FROM deletedItems)) AND itemID NOT IN (SELECT itemID FROM itemAttachments WHERE parentItemID IS NOT NULL AND parentItemID IN (SELECT itemID FROM deletedItems))) AND itemID IN (SELECT itemID FROM items WHERE (libraryID=?))) AND (itemID IN (SELECT itemID FROM tmpSearchResults_g40V8Gmo) OR itemID IN (SELECT itemID FROM itemAttachments WHERE parentItemID IN (SELECT itemID FROM tmpSearchResults_g40V8Gmo)) OR itemID IN (SELECT itemID FROM itemNotes WHERE parentItemID IN (SELECT itemID FROM tmpSearchResults_g40V8Gmo))) [1]
(4)(+0000004): DROP TABLE IF EXISTS tmpSearchResults_g40V8Gmo
(3)(+0000004): Sorting items list by title, firstCreator, date, dateAdded ascending for 61 items
(3)(+0000004): Sorted 61 items in 4 ms
(3)(+0000000): Refreshed open parents in 0 ms
(3)(+0000006): Rendering tag selector
(3)(+0000002): Rendering tag list
(3)(+0000004): Tag selector updated
(3)(+0000000): Updating tag selector from current view
(3)(+0000002): Creating tmpSearchResults_uQyqVUzq with 145 items
(3)(+0000006): Set tree for items view eKPDwD76 in 48 ms
(3)(+0000000): User interface ready in 2080 ms
(3)(+0000014): Connecting to streaming server at wss://stream.zotero.org/
(3)(+0000004): {better-bibtex +796} Startup progress: Warten auf Zotero-Datenbank...
(3)(+0000004): {better-bibtex +4} Startup progress: progress window up
(4)(+0000008): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [378, 3, 'https://blog.twitter.com/official/en_us/a/2011/numbers.html']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [388, 3, '']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [409, 3, 'http://portal.acm.org/citation.cfm?doid=1883612.1883615']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [423, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [334, 3, 'http://waterken.sourceforge.net/aclsdont/current.pdf']
(4)(+0000008): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [324, 3, 'https://www.w3.org/TR/activitystreams-vocabulary/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [284, 3, 'https://schub.io/blog/2018/02/01/activitypub-one-protocol-to-rule-them-all.html']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [411, 3, 'https://www.w3.org/TR/2018/REC-activitypub-20180123/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [281, 3, 'https://blog.soykaf.com/post/activity-pub-in-pleroma/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [310, 3, 'https://activitypub.rocks/implementation-report/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [315, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017/raw/master/final-documents/activitypub-decentralized-distributed.pdf']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [398, 3, 'https://blog.dereferenced.org/activitypub-the-worse-is-better-approach-to-federated-social-networking']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [429, 3, '']
(4)(+0000008): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [336, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust/raw/master/final-documents/dpki.pdf']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [338, 3, 'https://raw.githubusercontent.com/jaywink/social-relay/master/docs/relays.md']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [474, 3, 'https://0b101010.codes/research-things/open-data/tree/master/diaspora/tag-usage']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [460, 3, 'http://nrs.harvard.edu/urn-3:HUL.InstRepos:2962660']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [443, 3, 'http://ieeexplore.ieee.org/document/1401878/']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [472, 3, 'https://doi.org/10.5281/zenodo.1146014']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [403, 3, 'https://gnusocial.net/doc/groups']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [401, 3, 'https://www.w3.org/community/ostatus/wiki/Groups']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [439, 3, 'https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [433, 3, 'http://link.springer.com/10.1007/3-540-45748-8_5']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [417, 3, 'http://www.rfc-editor.org/rfc/rfc2119.txt']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [449, 3, 'http://link.springer.com/10.1007/11422778_3']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [373, 3, '']
(4)(+0000008): CREATE UNIQUE INDEX tmpSearchResults_uQyqVUzq_itemID ON tmpSearchResults_uQyqVUzq(itemID)
(4)(+0000054): SELECT DISTINCT tagID || ':' || type FROM itemTags JOIN tags USING (tagID) WHERE 1 AND itemID IN (SELECT itemID FROM tmpSearchResults_uQyqVUzq) ORDER BY name COLLATE NOCASE
(3)(+0000002): {better-bibtex +168} Zotero ready, let's roll!
(3)(+0000000): {better-bibtex +0} Startup progress: Warten auf Zotero-Datenbank took 0.968 s
(3)(+0000000): {better-bibtex +0} Startup progress: Lade Zitierschlüssel...
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [388, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [409, 3, 'http://portal.acm.org/citation.cfm?doid=1883612.1883615']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [423, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [334, 3, 'http://waterken.sourceforge.net/aclsdont/current.pdf']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [324, 3, 'https://www.w3.org/TR/activitystreams-vocabulary/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [284, 3, 'https://schub.io/blog/2018/02/01/activitypub-one-protocol-to-rule-them-all.html']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [411, 3, 'https://www.w3.org/TR/2018/REC-activitypub-20180123/']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [281, 3, 'https://blog.soykaf.com/post/activity-pub-in-pleroma/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [310, 3, 'https://activitypub.rocks/implementation-report/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [315, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017/raw/master/final-documents/activitypub-decentralized-distributed.pdf']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [398, 3, 'https://blog.dereferenced.org/activitypub-the-worse-is-better-approach-to-federated-social-networking']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [429, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [336, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust/raw/master/final-documents/dpki.pdf']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [338, 3, 'https://raw.githubusercontent.com/jaywink/social-relay/master/docs/relays.md']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [460, 3, 'http://nrs.harvard.edu/urn-3:HUL.InstRepos:2962660']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [443, 3, 'http://ieeexplore.ieee.org/document/1401878/']
(3)(+0000014): Sorted tags in 8 ms
(3)(+0000000): Rendering tag selector
(3)(+0000020): Rendering tag list
(3)(+0000060): Tag selector updated
(4)(+0000040): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [378, 3, 'https://blog.twitter.com/official/en_us/a/2011/numbers.html']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [388, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [409, 3, 'http://portal.acm.org/citation.cfm?doid=1883612.1883615']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [423, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [334, 3, 'http://waterken.sourceforge.net/aclsdont/current.pdf']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [324, 3, 'https://www.w3.org/TR/activitystreams-vocabulary/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [284, 3, 'https://schub.io/blog/2018/02/01/activitypub-one-protocol-to-rule-them-all.html']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [411, 3, 'https://www.w3.org/TR/2018/REC-activitypub-20180123/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [281, 3, 'https://blog.soykaf.com/post/activity-pub-in-pleroma/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [310, 3, 'https://activitypub.rocks/implementation-report/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [315, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017/raw/master/final-documents/activitypub-decentralized-distributed.pdf']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [398, 3, 'https://blog.dereferenced.org/activitypub-the-worse-is-better-approach-to-federated-social-networking']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [429, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [336, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust/raw/master/final-documents/dpki.pdf']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [338, 3, 'https://raw.githubusercontent.com/jaywink/social-relay/master/docs/relays.md']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [460, 3, 'http://nrs.harvard.edu/urn-3:HUL.InstRepos:2962660']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [443, 3, 'http://ieeexplore.ieee.org/document/1401878/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [403, 3, 'https://gnusocial.net/doc/groups']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [401, 3, 'https://www.w3.org/community/ostatus/wiki/Groups']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [439, 3, 'https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [433, 3, 'http://link.springer.com/10.1007/3-540-45748-8_5']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [417, 3, 'http://www.rfc-editor.org/rfc/rfc2119.txt']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [449, 3, 'http://link.springer.com/10.1007/11422778_3']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [373, 3, '']
(3)(+0000008): PluginInstaller: fetching addon info
(4)(+0000034): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [423, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [334, 3, 'http://waterken.sourceforge.net/aclsdont/current.pdf']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [324, 3, 'https://www.w3.org/TR/activitystreams-vocabulary/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [284, 3, 'https://schub.io/blog/2018/02/01/activitypub-one-protocol-to-rule-them-all.html']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [411, 3, 'https://www.w3.org/TR/2018/REC-activitypub-20180123/']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [281, 3, 'https://blog.soykaf.com/post/activity-pub-in-pleroma/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [310, 3, 'https://activitypub.rocks/implementation-report/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [315, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017/raw/master/final-documents/activitypub-decentralized-distributed.pdf']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [398, 3, 'https://blog.dereferenced.org/activitypub-the-worse-is-better-approach-to-federated-social-networking']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [429, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [336, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust/raw/master/final-documents/dpki.pdf']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [338, 3, 'https://raw.githubusercontent.com/jaywink/social-relay/master/docs/relays.md']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [460, 3, 'http://nrs.harvard.edu/urn-3:HUL.InstRepos:2962660']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [443, 3, 'http://ieeexplore.ieee.org/document/1401878/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [403, 3, 'https://gnusocial.net/doc/groups']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [401, 3, 'https://www.w3.org/community/ostatus/wiki/Groups']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [439, 3, 'https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [433, 3, 'http://link.springer.com/10.1007/3-540-45748-8_5']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [417, 3, 'http://www.rfc-editor.org/rfc/rfc2119.txt']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [449, 3, 'http://link.springer.com/10.1007/11422778_3']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [373, 3, '']
(4)(+0000056): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [398, 3, 'https://blog.dereferenced.org/activitypub-the-worse-is-better-approach-to-federated-social-networking']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [429, 3, '']
(3)(+0000018): {better-bibtex +382} FileStore.migrate: {"path":"/home/spiollinux/Zotero/cache.sqlite","exists":false}
(3)(+0000002): {better-bibtex +2} FileStore.migrate: {"path":"/home/spiollinux/Zotero/better-bibtex.sqlite","exists":true}
(3)(+0000000): [better-bibtex] Asynchronously opening database 'better-bibtex'
(3)(+0000000): /home/spiollinux/Zotero/better-bibtex.sqlite
(3)(+0000010): PluginInstaller: addon info fetched
(4)(+0000096): PRAGMA main.locking_mode=EXCLUSIVE
(4)(+0000004): PRAGMA page_size
(4)(+0000004): PRAGMA cache_size=250
(4)(+0000002): PRAGMA foreign_keys=true
(4)(+0000000): SELECT name, data FROM "better-bibtex" ORDER BY name ASC
(3)(+0000006): {better-bibtex +122} installing schema for citekey {"type":"object","properties":{"itemID":{"type":"integer"},"itemKey":{"type":"string"},"libraryID":{"type":"integer"},"citekey":{"type":"string","minLength":1},"pinned":{"type":"boolean","default":false},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","libraryID","citekey","pinned"],"additionalProperties":false}
(3)(+0000008): {better-bibtex +8} Keymanager: userLibraryID = 1
(3)(+0000018): {better-bibtex +18} installing schema for autoexport {"type":"object","properties":{"type":{"enum":["collection","library"]},"id":{"type":"integer"},"path":{"type":"string","minLength":1},"status":{"enum":["scheduled","running","done","error"]},"translatorID":{"type":"string","minLength":1},"exportNotes":{"type":"boolean","default":false},"useJournalAbbreviation":{"type":"boolean","default":false},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"error":{"type":"string","default":""},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["type","id","path","status","translatorID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL"],"additionalProperties":false}
(3)(+0000030): {better-bibtex +30} installing schema for itemToExportFormat {"type":"object","properties":{"itemID":{"type":"integer"},"legacy":{"type":"boolean"},"skipChildItems":{"type":"boolean"},"item":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","legacy","skipChildItems","item"],"additionalProperties":false}
(3)(+0000006): CACHE: retaining cache itemToExportFormat because stored Zotero is 5.0.66 (current: 5.0.66)
(4)(+0000002): SELECT itemID, strftime("%s", dateModified) * 1000 AS modified FROM items WHERE itemID NOT IN (select itemID from deletedItems)
(3)(+0000008): {better-bibtex +16} installing schema for Better BibLaTeX {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000006): CACHE: retaining cache Better BibLaTeX because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +6} installing schema for Better BibTeX {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000000): CACHE: retaining cache Better BibTeX because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +0} installing schema for Better BibTeX Citation Key Quick Copy {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000002): CACHE: retaining cache Better BibTeX Citation Key Quick Copy because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +2} installing schema for Better CSL JSON {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000000): CACHE: retaining cache Better CSL JSON because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +0} installing schema for Better CSL YAML {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000000): CACHE: retaining cache Better CSL YAML because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +0} installing schema for BetterBibTeX JSON {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000000): CACHE: retaining cache BetterBibTeX JSON because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +0} installing schema for Citation graph {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000000): CACHE: retaining cache Citation graph because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000002): {better-bibtex +2} installing schema for Collected notes {"type":"object","properties":{"itemID":{"type":"integer"},"reference":{"type":"string"},"exportNotes":{"type":"boolean"},"useJournalAbbreviation":{"type":"boolean"},"DOIandURL":{"enum":["both","doi","url"]},"asciiBibLaTeX":{"type":"boolean"},"asciiBibTeX":{"type":"boolean"},"biblatexExtendedNameFormat":{"type":"boolean"},"bibtexParticleNoOp":{"type":"boolean"},"bibtexURL":{"enum":["off","note","url"]},"metadata":{"type":"object"},"meta":{"type":"object"},"$loki":{"type":"integer"}},"required":["itemID","exportNotes","useJournalAbbreviation","DOIandURL","asciiBibLaTeX","asciiBibTeX","biblatexExtendedNameFormat","bibtexParticleNoOp","bibtexURL","reference"],"additionalProperties":false}
(3)(+0000000): CACHE: retaining cache Collected notes because stored BetterBibTeX is 5.1.76 (current: 5.1.76)
(3)(+0000000): {better-bibtex +0} Startup progress: Lade Zitierschlüssel took 0.588 s
(3)(+0000000): {better-bibtex +0} Startup progress: Beginne automatischen Export...
(3)(+0000000): {better-bibtex +0} pathSearch: looking for git in {"path":["/run/wrappers/bin","/usr/bin","/usr/sbin"],"pathext":[""],"sep":"/"}
(3)(+0000000): {better-bibtex +0} pathSearch: git not found in ["/run/wrappers/bin","/usr/bin","/usr/sbin"]
(3)(+0000000): {better-bibtex +0} git.init: git not found
(3)(+0000002): {better-bibtex +2} Startup progress: Beginne automatischen Export took 0.002 s
(3)(+0000000): {better-bibtex +0} Startup progress: Starte Schlüsselverwaltung...
(3)(+0000000): {better-bibtex +0} KeyManager.init...
(3)(+0000000): {better-bibtex +0} initializing kuroshiro
(3)(+0000000): {better-bibtex +0} kuroshiro: initializing...
(3)(+0000000): {better-bibtex +0} kuroshiro: disabled
(3)(+0000000): {better-bibtex +0} kuroshiro initialized
(3)(+0000000): {better-bibtex +0} KeyManager.init: {"keys":190}
(4)(+0000000): select fieldID, fieldName from fields where fieldName in ('extra')
(4)(+0000002): select itemTypeID, typeName from itemTypes where typeName in ('note', 'attachment')
(4)(+0000002): select typeName from itemTypes
(3)(+0000002): {better-bibtex +6} Formatter.itemTypes = ["note","book","booksection","journalarticle","magazinearticle","newspaperarticle","thesis","letter","manuscript","interview","film","artwork","webpage","attachment","report","bill","case","hearing","patent","statute","email","map","blogpost","instantmessage","forumpost","audiorecording","presentation","videorecording","tvbroadcast","radiobroadcast","podcast","computerprogram","conferencepaper","document","encyclopediaarticle","dictionaryentry"]
(3)(+0000000): {better-bibtex +0} PatternFormatter.update: init
(3)(+0000000): {better-bibtex +0} PatternFormatter.update: trying citekeyFormat [auth:lower][shorttitle3_3][year]...
(3)(+0000002): {better-bibtex +2} PatternFormatter.update: citekeyFormat= [auth:lower][shorttitle3_3][year] function anonymous() { var loop, citekey, postfix, chunk; for (loop = true; loop; loop=false) { citekey = ''; postfix = 'a'; chunk = this.$auth(false, false, ""); chunk = this.clean(chunk); chunk = this._lower(chunk); citekey += chunk; chunk = this.$shorttitle(3, 3); citekey += chunk; chunk = this.$year(); citekey += chunk; citekey = citekey.replace(/[\s{},]/g, ''); if (citekey) return {citekey: citekey, postfix: postfix}; } return {citekey: ''}; }
(3)(+0000000): {better-bibtex +0} KeyManager.rescan: {"keys":190}
(4)(+0000000): SELECT item.itemID, item.libraryID, item.key, extra.value as extra, item.itemTypeID FROM items item LEFT JOIN itemData field ON field.itemID = item.itemID AND field.fieldID = 22 LEFT JOIN itemDataValues extra ON extra.valueID = field.valueID WHERE item.itemID NOT IN (select itemID from deletedItems) AND item.itemTypeID NOT IN (14, 1)
(3)(+0000034): {better-bibtex +34} KeyManager.bench: cleanup 34
(3)(+0000004): {better-bibtex +4} KeyManager.bench: regenerate 4
(3)(+0000000): {better-bibtex +0} KeyManager.rescan: done updating citation keys
(3)(+0000000): {better-bibtex +0} KeyManager.init: done
(3)(+0000000): {better-bibtex +0} events: handler registered for preference-changed
(3)(+0000000): {better-bibtex +0} Startup progress: Starte Schlüsselverwaltung took 0.046 s
(3)(+0000000): {better-bibtex +0} Startup progress: Warten auf Zotero-Übersetzer...
(3)(+0000012): WebSocket connection opened
(3)(+0000000): WebSocket message: {"event":"connected","retry":10000}
(3)(+0000004): WebSocket message send: {"action":"createSubscriptions","subscriptions":[{"topics":["styles","translators"]}]}
(4)(+0000050): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [328, 3, 'https://github.com/w3c/activitypub/issues/203']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [322, 3, 'https://w3c-dvcg.github.io/ld-signatures/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [331, 3, 'https://litepub.social/litepub/overview.html']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [446, 3, 'http://ieeexplore.ieee.org/document/1354648/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [422, 3, 'http://link.springer.com/10.1007/978-3-540-45172-3_6']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [326, 3, 'https://source.joinmastodon.org/mastodon/pub-relay']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [384, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [297, 3, 'http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bug']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [437, 3, 'http://nodeinfo.diaspora.software/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [355, 3, '']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [357, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [406, 3, 'https://git.pleroma.social/pleroma/relay']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [306, 3, 'https://discourse.diasporafoundation.org/t/public-post-federation/264/111']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [308, 3, 'https://wiki.diasporafoundation.org/Relay_servers_for_public_posts']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [317, 3, 'https://www.weboftrust.info/papers.html']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [396, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [390, 3, 'http://linkinghub.elsevier.com/retrieve/pii/S0140366407003222']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [351, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [291, 3, 'http://www.ietf.org/internet-drafts/draft-cavage-http-signatures-10.txt']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [427, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [419, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [303, 3, 'https://git.feneas.org/jaywink/social-relay']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [287, 3, 'https://www.w3.org/wiki/index.php?title=SocialCG/ActivityPub/Authentication_Authorization&oldid=105248']
(4)(+0000054): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [328, 3, 'https://github.com/w3c/activitypub/issues/203']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [322, 3, 'https://w3c-dvcg.github.io/ld-signatures/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [331, 3, 'https://litepub.social/litepub/overview.html']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [446, 3, 'http://ieeexplore.ieee.org/document/1354648/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [422, 3, 'http://link.springer.com/10.1007/978-3-540-45172-3_6']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [326, 3, 'https://source.joinmastodon.org/mastodon/pub-relay']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [384, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [297, 3, 'http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bug']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [437, 3, 'http://nodeinfo.diaspora.software/']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [355, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [357, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [406, 3, 'https://git.pleroma.social/pleroma/relay']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [306, 3, 'https://discourse.diasporafoundation.org/t/public-post-federation/264/111']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [308, 3, 'https://wiki.diasporafoundation.org/Relay_servers_for_public_posts']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [317, 3, 'https://www.weboftrust.info/papers.html']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [396, 3, 'https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017']
(4)(+0000006): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [390, 3, 'http://linkinghub.elsevier.com/retrieve/pii/S0140366407003222']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [351, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [291, 3, 'http://www.ietf.org/internet-drafts/draft-cavage-http-signatures-10.txt']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [427, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [419, 3, '']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [303, 3, 'https://git.feneas.org/jaywink/social-relay']
(4)(+0000004): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [287, 3, 'https://www.w3.org/wiki/index.php?title=SocialCG/ActivityPub/Authentication_Authorization&oldid=105248']
(3)(+0000048): WebSocket message: {"event":"subscriptionsCreated","subscriptions":[{"topics":["styles","translators"]}],"errors":[]}
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [390, 3, 'http://linkinghub.elsevier.com/retrieve/pii/S0140366407003222']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [351, 3, '']
(4)(+0000038): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [322, 3, 'https://w3c-dvcg.github.io/ld-signatures/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [331, 3, 'https://litepub.social/litepub/overview.html']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [446, 3, 'http://ieeexplore.ieee.org/document/1354648/']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [422, 3, 'http://link.springer.com/10.1007/978-3-540-45172-3_6']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [326, 3, 'https://source.joinmastodon.org/mastodon/pub-relay']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [384, 3, '']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [297, 3, 'http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bug']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [437, 3, 'http://nodeinfo.diaspora.software/']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [355, 3, '']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [357, 3, '']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [406, 3, 'https://git.pleroma.social/pleroma/relay']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [306, 3, 'https://discourse.diasporafoundation.org/t/public-post-federation/264/111']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [308, 3, 'https://wiki.diasporafoundation.org/Relay_servers_for_public_posts']
(4)(+0000000): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [317, 3, 'https://www.weboftrust.info/papers.html']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [390, 3, 'http://linkinghub.elsevier.com/retrieve/pii/S0140366407003222']
(4)(+0000002): SELECT IA.itemID FROM itemAttachments IA NATURAL JOIN items I LEFT JOIN itemData ID ON (IA.itemID=ID.itemID AND fieldID=1) LEFT JOIN itemDataValues IDV ON (ID.valueID=IDV.valueID) WHERE parentItemID=? AND linkMode NOT IN (?) AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) ORDER BY contentType='application/pdf' DESC, value=? DESC, dateAdded ASC [351, 3, '']
(3)(+0000726): No general proxy or PAC file found -- assuming direct connection
(4)(+0000000): Sync not enabled -- skipping auto-sync
(3)(+0001000): Updating bundled files
(3)(+0000002): Initializing translators
(4)(+0000000): SELECT rowid, fileName, metadataJSON, lastModifiedTime FROM translatorCache
(4)(+0000890): Beginning DB transaction 2a6cDdIn
(4)(+0000002): SELECT name FROM "better-bibtex"
(4)(+0000004): REPLACE INTO "better-bibtex" (name, data) VALUES (?, ?) ['better-bibtex.citekey', '{"name":"citekey","data":[{"citekey":"EUUrheberrechtsreformUploadfilterGefahrden2017","pinned":false,"itemID":2,"libraryID":1,"itemKey":"SX7G2R4D","meta":{"revision":82,"created":1527972533582,"version":0,"updated":1557153008388},"$loki":1},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1332017","pinned":false,"itemID":5,"libraryID":1,"itemKey":"I9VII6TY","meta":{"revision":82,"created":1527972533584,"version":0,"updated":1557153008388},"$loki":2},{"citekey":"3GPPTS23","pinned":false,"itemID":6,"libraryID":1,"itemKey":"EA2F6Y7Z","meta":{"revision":82,"created":1527972533586,"version":0,"updated":1557153008388},"$loki":3},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022012","pinned":false,"itemID":9,"libraryID":1,"itemKey":"8GTC4SMN","meta":{"revision":82,"created":1527972533588,"version":0,"updated":1557153008388},"$loki":4},{"citekey":"SearchBrowseStandards","pinned":false,"itemID":10,"libraryID":1,"itemKey":"CEPBESUD","meta":{"revision":82,"created":1527972533588,"version":0,"updated":1557153008388},"$loki":5},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI3026652010","pinned":false,"itemID":13,"libraryID":1,"itemKey":"AIIJQNHZ","meta":{"revision":82,"created":1527972533588,"version":0,"updated":1557153008388},"$loki":6},{"citekey":"StudyArchitectureEnhancements","pinned":false,"itemID":15,"libraryID":1,"itemKey":"U2CU2DMQ","meta":{"revision":82,"created":1527972533588,"version":0,"updated":1557153008388},"$loki":7},{"citekey":"StudySecurityAspects","pinned":false,"itemID":17,"libraryID":1,"itemKey":"LNDMAJ65","meta":{"revision":82,"created":1527972533590,"version":0,"updated":1557153008388},"$loki":8},{"citekey":"angermeierPALPrivacyAugmented2013","pinned":false,"itemID":19,"libraryID":1,"itemKey":"9I7K9M8V","meta":{"revision":82,"created":1527972533590,"version":0,"updated":1557153008388},"$loki":9},{"citekey":"schaubVtokensConditionalPseudonymity2010","pinned":false,"itemID":22,"libraryID":1,"itemKey":"XEGKRCL6","meta":{"revision":82,"created":1527972533592,"version":0,"updated":1557153008388},"$loki":10},{"citekey":"forsterPUCAPseudonymScheme2015","pinned":false,"itemID":25,"libraryID":1,"itemKey":"RE5NMC9P","meta":{"revision":82,"created":1527972533600,"version":0,"updated":1557153008388},"$loki":11},{"citekey":"forsterPUCAPseudonymScheme2016","pinned":false,"itemID":28,"libraryID":1,"itemKey":"CZSV76BV","meta":{"revision":82,"created":1527972533600,"version":0,"updated":1557153008388},"$loki":12},{"citekey":"AnalysisPrivacyThreat2017","pinned":false,"itemID":29,"libraryID":1,"itemKey":"3DGJGMI7","meta":{"revision":82,"created":1527972533602,"version":0,"updated":1557153008388},"$loki":13},{"citekey":"baldiniAnalysisPrivacyThreat2017","pinned":false,"itemID":31,"libraryID":1,"itemKey":"GPNS5CNK","meta":{"revision":82,"created":1527972533602,"version":0,"updated":1557153008388},"$loki":14},{"citekey":"quSecurityPrivacyReview2015","pinned":false,"itemID":34,"libraryID":1,"itemKey":"QPQMNBXJ","meta":{"revision":82,"created":1527972533602,"version":0,"updated":1557153008388},"$loki":15},{"citekey":"liuAnonymousGroupMessage","pinned":false,"itemID":38,"libraryID":1,"itemKey":"MG6Y3GWQ","meta":{"revision":82,"created":1527972533602,"version":0,"updated":1557153008388},"$loki":16},{"citekey":"sorensen5GVisionsUser2015","pinned":false,"itemID":39,"libraryID":1,"itemKey":"CA6A66AM","meta":{"revision":82,"created":1527972533602,"version":0,"updated":1557153008388},"$loki":17},{"citekey":"lentzSDDRLightWeightSecure","pinned":false,"itemID":43,"libraryID":1,"itemKey":"WSNY3M9K","meta":{"revision":82,"created":1527972533604,"version":0,"updated":1557153008388},"$loki":18},{"citekey":"nevenPrivacypreservingAttributebasedCredentials2017","pinned":false,"itemID":45,"libraryID":1,"itemKey":"9FTEXG8D","meta":{"revision":82,"created":1527972533604,"version":0,"updated":1557153008388},"$loki":19},{"citekey":"boualouacheSurveyPseudonymChanging2018","pinned":false,"itemID":49,"libraryID":1,"itemKey":"2DN6YKLS","meta":{"revision":82,"created":1527972533604,"version":0,"updated":1557153008388},"$loki":20},{"citekey":"petitPseudonymSchemesVehicular2015","pinned":false,"itemID":51,"libraryID":1,"itemKey":"XPQWJB5G","meta":{"revision":82,"created":1527972533604,"version":0,"updated":1557153008388},"$loki":21},{"citekey":"Vocabulary3GPPSpecifications","pinned":false,"itemID":55,"libraryID":1,"itemKey":"LB57MGTW","meta":{"revision":82,"created":1527972533604,"version":0,"updated":1557153008388},"$loki":22},{"citekey":"wernkeClassificationLocationPrivacy2014","pinned":false,"itemID":59,"libraryID":1,"itemKey":"675428LG","meta":{"revision":82,"created":1527972533604,"version":0,"updated":1557153008388},"$loki":23},{"citekey":"zengPseudonymousPKIUbiquitous2006","pinned":false,"itemID":63,"libraryID":1,"itemKey":"4VHGPZD4","meta":{"revision":82,"created":1527972533616,"version":0,"updated":1557153008388},"$loki":24},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITR1032018","pinned":false,"itemID":72,"libraryID":1,"itemKey":"9LJ4CXZV","meta":{"revision":82,"created":1527972533616,"version":0,"updated":1557153008388},"$loki":25},{"citekey":"hamidaSecurityCooperativeIntelligent2015","pinned":false,"itemID":78,"libraryID":1,"itemKey":"YCYSPS2P","meta":{"revision":82,"created":1527972533616,"version":0,"updated":1557153008388},"$loki":26},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022010","pinned":false,"itemID":81,"libraryID":1,"itemKey":"PJ3AM7TH","meta":{"revision":82,"created":1527972533616,"version":0,"updated":1557153008388},"$loki":27},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022012a","pinned":false,"itemID":83,"libraryID":1,"itemKey":"49QW9IS4","meta":{"revision":82,"created":1527972533616,"version":0,"updated":1557153008388},"$loki":28},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI302636612014","pinned":false,"itemID":86,"libraryID":1,"itemKey":"7Y8ZHFLZ","meta":{"revision":82,"created":1527972533618,"version":0,"updated":1557153008388},"$loki":29},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI302636412017","pinned":false,"itemID":89,"libraryID":1,"itemKey":"IM2SWQZJ","meta":{"revision":82,"created":1527972533618,"version":0,"updated":1557153008388},"$loki":30},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI302636512017","pinned":false,"itemID":91,"libraryID":1,"itemKey":"F8T6B5QA","meta":{"revision":86,"created":1527972533618,"version":0,"updated":1557153008388},"$loki":31},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI30263632014","pinned":false,"itemID":94,"libraryID":1,"itemKey":"UIBIW7MF","meta":{"revision":84,"created":1527972533618,"version":0,"updated":1557153008388},"$loki":32},{"citekey":"sandonisVehicleInternetCommunications2016","pinned":false,"itemID":98,"libraryID":1,"itemKey":"LL7VW3QK","meta":{"revision":82,"created":1527972533618,"version":0,"updated":1557153008388},"$loki":33},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022011a","pinned":false,"itemID":104,"libraryID":1,"itemKey":"B786TJGZ","meta":{"revision":82,"created":1527972533618,"version":0,"updated":1557153008388},"$loki":34},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022010b","pinned":false,"itemID":105,"libraryID":1,"itemKey":"8A3FA4EQ","meta":{"revision":82,"created":1527972533620,"version":0,"updated":1557153008388},"$loki":35},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI30263622013","pinned":false,"itemID":106,"libraryID":1,"itemKey":"NMJFVU5F","meta":{"revision":84,"created":1527972533634,"version":0,"updated":1557153008388},"$loki":36},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSI30263612014","pinned":false,"itemID":107,"libraryID":1,"itemKey":"S8F59WHV","meta":{"revision":84,"created":1527972533640,"version":0,"updated":1557153008388},"$loki":37},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022012b","pinned":false,"itemID":111,"libraryID":1,"itemKey":"FSS36939","meta":{"revision":82,"created":1527972533640,"version":0,"updated":1557153008388},"$loki":38},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022012c","pinned":false,"itemID":112,"libraryID":1,"itemKey":"KBR9GSUJ","meta":{"revision":82,"created":1527972533642,"version":0,"updated":1557153008388},"$loki":39},{"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1032017","pinned":false,"itemID":113,"libraryID":1,"itemKey":"DBLASWZL","meta":{"revision":82,"created":1527972533642,"version":0,"updated":1557153008388},"$loki":40},{"citekey":"polalemanypratsPerformanceStudyIEEE2017","pinned":false,"itemID":115,"libraryID":1,"itemKey":"MA88SG9E","meta":{"revision":82,"created":1527972533642,"version":0,"updated":1557153008388},"$loki":41},{"citekey":"eucomissionc-itsplatformSecurityPolicyGovernance","pinned":false,"itemID":118,"libraryID":1,"itemKey":"Z4284R7I","meta":{"revision":82,"created":1527972533642,"version":0,"updated":1557153008386},"$loki":42},{"citekey":"stillerMobileSystemsIV2010","pinned":false,"itemID":122,"libraryID":1,"itemKey":"CD5A5UJ3","meta":{"revision":82,"created":1527972533642,"version":0,"updated":1557153008386},"$loki":43},{"citekey":"instituteetsiRecommendationGSM021992","pinned":false,"itemID":123,"libraryID":1,"itemKey":"HYTAL2FF","meta":{"revision":82,"created":1527972533644,"version":0,"updated":1557153008386},"$loki":44},{"citekey":"ITUTRecommendationDatabase","pinned":false,"itemID":124,"libraryID":1,"itemKey":"FZRP6HMP","meta":{"revision":82,"created":1527972533644,"version":0,"updated":1557153008386},"$loki":45},{"itemID":127,"libraryID":1,"itemKey":"TPZMFB6F","pinned":true,"citekey":"TN_libero_mab2","meta":{"revision":81,"created":1528019702854,"version":0,"updated":1557153008386},"$loki":46},{"itemID":128,"libraryID":1,"itemKey":"827JWE9S","pinned":true,"citekey":"RFC8200","meta":{"revision":81,"created":1528025210258,"version":0,"updated":1557153008386},"$loki":47},{"itemID":129,"libraryID":1,"itemKey":"USPVKMGG","pinned":true,"citekey":"RFC4291","meta":{"revision":81,"created":1528026098854,"version":0,"updated":1557153008386},"$loki":48},{"itemID":130,"libraryID":1,"itemKey":"3ZFKYKE4","pinned":false,"citekey":"baeckerRFCE014IPv6","meta":{"revision":85,"created":1528026894270,"version":0,"updated":1557153008386},"$loki":49},{"itemID":131,"libraryID":1,"itemKey":"4AM5Y27N","pinned":true,"citekey":"RFC4861","meta":{"revision":81,"created":1528064617290,"version":0,"updated":1557153008386},"$loki":50},{"itemID":142,"libraryID":1,"itemKey":"3JZAKN2F","pinned":false,"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1032016","meta":{"revision":81,"created":1528307437670,"version":0,"updated":1557153008386},"$loki":52},{"itemID":145,"libraryID":1,"itemKey":"8JLELUFW","pinned":true,"citekey":"RFC6437","meta":{"revision":77,"created":1528409876786,"version":0,"updated":1557153008386},"$loki":53},{"itemID":147,"libraryID":1,"itemKey":"SLHTK5EJ","pinned":true,"citekey":"RFC3963","meta":{"revision":76,"created":1528631505044,"version":0,"updated":1557153008386},"$loki":54},{"itemID":148,"libraryID":1,"itemKey":"PX78XXFK","pinned":false,"citekey":"armknechtCrosslayerPrivacyEnhancement2007","meta":{"revision":76,"created":1528664972640,"version":0,"updated":1557153008386},"$loki":55},{"itemID":151,"libraryID":1,"itemKey":"75BY5LZZ","pinned":false,"citekey":"calandrielloEfficientRobustPseudonymous2007","meta":{"revision":76,"created":1528665200840,"version":0,"updated":1557153008386},"$loki":56},{"itemID":154,"libraryID":1,"itemKey":"CGFHSSVB","pinned":false,"citekey":"perrigTESLABroadcastAuthentication","meta":{"revision":75,"created":1528728216998,"version":0,"updated":1557153008386},"$loki":57},{"itemID":156,"libraryID":1,"itemKey":"E6CZ2QLB","pinned":false,"citekey":"CommunicationTechnologiesVehicles2016","meta":{"revision":75,"created":1528741701874,"version":0,"updated":1557153008386},"$loki":58},{"itemID":158,"libraryID":1,"itemKey":"GP9RX5SP","pinned":false,"citekey":"zotero-158","meta":{"revision":74,"created":1528744699390,"version":0,"updated":1557153008386},"$loki":59},{"itemID":161,"libraryID":1,"itemKey":"KDW8VLWZ","pinned":false,"citekey":"verheulIssueFirstActivate","meta":{"revision":74,"created":1528744753862,"version":0,"updated":1557153008386},"$loki":60},{"itemID":163,"libraryID":1,"itemKey":"W4S3TDGF","pinned":false,"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022014","meta":{"revision":77,"created":1528746390620,"version":0,"updated":1557153008386},"$loki":61},{"itemID":165,"libraryID":1,"itemKey":"99UVGDCP","pinned":false,"citekey":"dolevSecurityPublicKey1983","meta":{"revision":74,"created":1528755034618,"version":0,"updated":1557153008386},"$loki":62},{"itemID":167,"libraryID":1,"itemKey":"IZHU9UJH","pinned":false,"citekey":"dolevSecurityPublicKey1983a","meta":{"revision":74,"created":1528755873812,"version":0,"updated":1557153008386},"$loki":63},{"itemID":169,"libraryID":1,"itemKey":"JPHGZGWU","pinned":false,"citekey":"europeantelecommunicationsstandardsinstituteetsiETSITS1022014a","meta":{"revision":77,"created":1528768767896,"version":0,"updated":1557153008386},"$loki":64},{"itemID":171,"libraryID":1,"itemKey":"WUEQU7I2","pinned":false,"citekey":"europeancommission-directorategeneralformobilityandtransportEvolutionEURoad2018","meta":{"revision":72,"created":1530555210586,"version":0,"updated":1557153008386},"$loki":65},{"itemID":172,"libraryID":1,"itemKey":"U43B86PD","pinned":false,"citekey":"claestingvallVisionZeroEthical1999","meta":{"revision":72,"created":1530572560414,"version":0,"updated":1557153008386},"$loki":66},{"itemID":175,"libraryID":1,"itemKey":"ZFABGIYK","pinned":false,"citekey":"careeuroadaccidentsdatabaseEUFatalitiesTargets","meta":{"revision":70,"created":1531591103502,"version":0,"updated":1557153008386},"$loki":67},{"itemID":177,"libraryID":1,"itemKey":"QNG8DUWF","pinned":false,"citekey":"zotero-177","meta":{"revision":65,"created":1533120511320,"version":0,"updated":1557153008386},"$loki":68},{"itemID":179,"libraryID":1,"itemKey":"V4YHQRDM","pinned":false,"citekey":"hartigLateralThinkingTrustworthy2017","meta":{"revision":65,"created":1533120726050,"version":0,"updated":1557153008386},"$loki":69},{"itemID":181,"libraryID":1,"itemKey":"D4FML8C9","pinned":false,"citekey":"himanshurajalecwolmanandronaldaignerandjeremiahcoxandProceedings2005Workshop2005","meta":{"revision":72,"created":1533120783496,"version":0,"updated":1557153008386},"$loki":70},{"itemID":182,"libraryID":1,"itemKey":"J44MFAWI","pinned":true,"citekey":"197213","meta":{"revision":65,"created":1533121348662,"version":0,"updated":1557153008386},"$loki":71},{"itemID":184,"libraryID":1,"itemKey":"TVZGMQXA","pinned":false,"citekey":"linnObfuscationExecutableCode","meta":{"revision":65,"created":1533121463182,"version":0,"updated":1557153008386},"$loki":72},{"itemID":186,"libraryID":1,"itemKey":"YLSNE95M","pinned":false,"citekey":"hofmannInkTagSecureApplications","meta":{"revision":65,"created":1533121599318,"version":0,"updated":1557153008386},"$loki":73},{"itemID":188,"libraryID":1,"itemKey":"G36IT7E3","pinned":false,"citekey":"TrustyTEE","meta":{"revision":65,"created":1533132117232,"version":0,"updated":1557153008386},"$loki":74},{"itemID":191,"libraryID":1,"itemKey":"TC2D9DHH","pinned":false,"citekey":"AndroidDRMFramework","meta":{"revision":67,"created":1533132178444,"version":0,"updated":1557153008386},"$loki":75},{"itemID":193,"libraryID":1,"itemKey":"LE5H4H63","pinned":false,"citekey":"NetflixDefectiveDesign","meta":{"revision":65,"created":1533132308702,"version":0,"updated":1557153008386},"$loki":76},{"itemID":195,"libraryID":1,"itemKey":"33Q66Q7I","pinned":false,"citekey":"chuangDigitalRightManagement2010","meta":{"revision":65,"created":1533132587826,"version":0,"updated":1557153008386},"$loki":77},{"itemID":199,"libraryID":1,"itemKey":"2MAZE4NJ","pinned":false,"citekey":"chuangDigitalRightManagement2010a","meta":{"revision":65,"created":1533132715762,"version":0,"updated":1557153008386},"$loki":78},{"itemID":201,"libraryID":1,"itemKey":"5NVSJEP2","pinned":false,"citekey":"googleWidevineDRMArchitecture2017","meta":{"revision":67,"created":1533132908440,"version":0,"updated":1557153008386},"$loki":79},{"itemID":203,"libraryID":1,"itemKey":"F3H6E2WP","pinned":false,"citekey":"andyNetflixUseGoogle2017","meta":{"revision":67,"created":1533133074812,"version":0,"updated":1557153008386},"$loki":80},{"itemID":205,"libraryID":1,"itemKey":"JEAT3DY4","pinned":false,"citekey":"livshitsSecurityNativeDRM2015","meta":{"revision":65,"created":1533133462716,"version":0,"updated":1557153008386},"$loki":81},{"itemID":209,"libraryID":1,"itemKey":"RXFULEX6","pinned":false,"citekey":"andreasgalReconcilingMozillaMission2014","meta":{"revision":67,"created":1533134367898,"version":0,"updated":1557153008384},"$loki":82},{"itemID":214,"libraryID":1,"itemKey":"NJ3EUEDE","pinned":false,"citekey":"yuTBDRMTPMBasedSecure2009","meta":{"revision":64,"created":1533408809182,"version":0,"updated":1557153008384},"$loki":83},{"itemID":215,"libraryID":1,"itemKey":"ADVB7ZU8","pinned":false,"citekey":"costanIntelSGXExplained2016","meta":{"revision":64,"created":1533505503646,"version":0,"updated":1557153008384},"$loki":84},{"itemID":218,"libraryID":1,"itemKey":"XUTTGJAL","pinned":false,"citekey":"NetflixUseGoogle2017a","meta":{"revision":64,"created":1533565477150,"version":0,"updated":1557153008384},"$loki":85},{"itemID":224,"libraryID":1,"itemKey":"PCIATW7U","pinned":false,"citekey":"w3cEncryptedMediaExtensions2017","meta":{"revision":63,"created":1535972968464,"version":0,"updated":1557153008384},"$loki":86},{"itemID":228,"libraryID":1,"itemKey":"TIIQIMYS","pinned":false,"citekey":"WhatEMEHsivonen","meta":{"revision":60,"created":1536061370156,"version":0,"updated":1557153008384},"$loki":87},{"itemID":231,"libraryID":1,"itemKey":"PDW7VZ6D","pinned":false,"citekey":"daubsHTML5DIGITALRIGHTS2017","meta":{"revision":60,"created":1536071936418,"version":0,"updated":1557153008384},"$loki":88},{"itemID":233,"libraryID":1,"itemKey":"SA7ZXWL7","pinned":false,"citekey":"phamOpenSourceContent2015","meta":{"revision":60,"created":1536072143224,"version":0,"updated":1557153008384},"$loki":89},{"itemID":236,"libraryID":1,"itemKey":"QA2E97P5","pinned":false,"citekey":"corydoctorowComingWarGeneral2011","meta":{"revision":63,"created":1536143841692,"version":0,"updated":1557153008384},"$loki":90},{"itemID":238,"libraryID":1,"itemKey":"LLK25N3S","pinned":false,"citekey":"bruceschneierCryptoGramMay152001","meta":{"revision":62,"created":1536146978514,"version":0,"updated":1557153008384},"$loki":91},{"itemID":242,"libraryID":1,"itemKey":"YJ28UBST","pinned":false,"citekey":"worldinternationalcopyrightorganizationWIPOCopyrightTreaty1996","meta":{"revision":62,"created":1536154362290,"version":0,"updated":1557153008384},"$loki":92},{"itemID":244,"libraryID":1,"itemKey":"7K2TZTUA","pinned":false,"citekey":"movielabsinc.MovieLabsSpecificationEnhanced2018","meta":{"revision":63,"created":1536169425932,"version":0,"updated":1557153008384},"$loki":93},{"itemID":245,"libraryID":1,"itemKey":"QBCD4J7M","pinned":false,"citekey":"sonydeveloperworldUnlockBootloaderOpen","meta":{"revision":61,"created":1536170438558,"version":0,"updated":1557153008384},"$loki":94},{"itemID":248,"libraryID":1,"itemKey":"EZJXMZMK","pinned":false,"citekey":"unifiedefiforuminc.UEFISpecificationVersion2017","meta":{"revision":61,"created":1536181191894,"version":0,"updated":1557153008384},"$loki":95},{"itemID":250,"libraryID":1,"itemKey":"CVJ9HCX4","pinned":false,"citekey":"MicrosoftHardwareCertification2014","meta":{"revision":62,"created":1536187334312,"version":0,"updated":1557153008384},"$loki":96},{"itemID":251,"libraryID":1,"itemKey":"SFJ33IWV","pinned":false,"citekey":"moodyMicrosoftBlockingLinux","meta":{"revision":60,"created":1536187929560,"version":0,"updated":1557153008384},"$loki":97},{"itemID":253,"libraryID":1,"itemKey":"IM72FQDH","pinned":false,"citekey":"matthewgarrettAnnouncingShimReview","meta":{"revision":62,"created":1536189009268,"version":0,"updated":1557153008384},"$loki":98},{"itemID":256,"libraryID":1,"itemKey":"4JJQ7ZGC","pinned":false,"citekey":"armlimitedARMSecurityTechnology2005","meta":{"revision":62,"created":1536239305614,"version":0,"updated":1557153008384},"$loki":99},{"itemID":257,"libraryID":1,"itemKey":"8WB2PHMD","pinned":false,"citekey":"peinadom.ControlledChannelAttacksDeterministic2015","meta":{"revision":64,"created":1536324752558,"version":0,"updated":1557153008384},"$loki":100},{"itemID":262,"libraryID":1,"itemKey":"79PWI4YU","pinned":false,"citekey":"swamiyogeshIntelSGXRemote2017","meta":{"revision":59,"created":1537284437012,"version":0,"updated":1557153008384},"$loki":101},{"itemID":263,"libraryID":1,"itemKey":"NASIJSCV","pinned":false,"citekey":"corvindavenportNetflixConfirmsIt2017","meta":{"revision":57,"created":1537367905690,"version":0,"updated":1557153008384},"$loki":102},{"itemID":267,"libraryID":1,"itemKey":"4QAE3AFA","pinned":false,"citekey":"arthurPracticalGuideTPM2015","meta":{"revision":55,"created":1537490623336,"version":0,"updated":1557153008384},"$loki":103},{"itemID":269,"libraryID":1,"itemKey":"DEB4ZNJN","pinned":false,"citekey":"shenExploitingTrustzoneAndroid2015","meta":{"revision":56,"created":1537544138894,"version":0,"updated":1557153008384},"$loki":104},{"itemID":270,"libraryID":1,"itemKey":"KRTHALS5","pinned":true,"citekey":"DBLP:conf/reconfig/LombG11","meta":{"revision":55,"created":1537547130014,"version":0,"updated":1557153008384},"$loki":105},{"itemID":271,"libraryID":1,"itemKey":"T6BKX5NB","pinned":true,"citekey":"DBLP:conf/reconfig/2011","meta":{"revision":55,"created":1537547130226,"version":0,"updated":1557153008384},"$loki":106},{"itemID":272,"libraryID":1,"itemKey":"52KDXZ66","pinned":false,"citekey":"doctorowCloudComputingDRM","meta":{"revision":57,"created":1537556555158,"version":0,"updated":1557153008384},"$loki":107},{"itemID":274,"libraryID":1,"itemKey":"5TAM2CZ3","pinned":false,"citekey":"bergmayerItAlwaysDRM2018","meta":{"revision":56,"created":1537556823494,"version":0,"updated":1557153008384},"$loki":108},{"itemID":277,"libraryID":1,"itemKey":"BI7FYCLK","pinned":false,"citekey":"freesoftwarefoundationeuropeDRMStrangeBroken2012","meta":{"revision":58,"created":1537557303172,"version":0,"updated":1557153008382},"$loki":109},{"itemID":278,"libraryID":1,"itemKey":"RZAUVS3V","pinned":false,"citekey":"sterlingDeadMediaBeat2008","meta":{"revision":55,"created":1537565070978,"version":0,"updated":1557153008382},"$loki":110},{"itemID":281,"libraryID":1,"itemKey":"76EGV72Q","pinned":false,"citekey":"lainpleroma.soykaf.comActivityPubPleroma2018","meta":{"revision":51,"created":1541337330918,"version":0,"updated":1557153008382},"$loki":111},{"itemID":284,"libraryID":1,"itemKey":"VHNRSSDF","pinned":false,"citekey":"ActivityPubOneProtocol","meta":{"revision":51,"created":1541338758518,"version":0,"updated":1557153008382},"$loki":112},{"itemID":287,"libraryID":1,"itemKey":"I5XNZTCG","pinned":false,"citekey":"SocialCGActivityPubAuthentication","meta":{"revision":51,"created":1541338799670,"version":0,"updated":1557153008382},"$loki":113},{"itemID":289,"libraryID":1,"itemKey":"IP8IXZC8","pinned":false,"citekey":"SecurityVocabularyHttps","meta":{"revision":51,"created":1541339744210,"version":0,"updated":1557153008382},"$loki":114},{"itemID":291,"libraryID":1,"itemKey":"6SMEWX5C","pinned":true,"citekey":"I-D.cavage-http-signatures","meta":{"revision":51,"created":1541342473254,"version":0,"updated":1557153008382},"$loki":115},{"itemID":293,"libraryID":1,"itemKey":"WW8I573Z","pinned":false,"citekey":"TwisterP2PMicroblogging","meta":{"revision":51,"created":1541343022052,"version":0,"updated":1557153008382},"$loki":116},{"itemID":297,"libraryID":1,"itemKey":"5HILC6L8","pinned":false,"citekey":"NearlyAllDHT","meta":{"revision":51,"created":1541344316494,"version":0,"updated":1557153008382},"$loki":117},{"itemID":299,"libraryID":1,"itemKey":"QVIB6FFM","pinned":false,"citekey":"freitasTwisterP2PMicroblogging2013","meta":{"revision":51,"created":1541344487473,"version":0,"updated":1557153008382},"$loki":118},{"itemID":303,"libraryID":1,"itemKey":"UWGWQNSC","pinned":false,"citekey":"SocialrelayPublicPost","meta":{"revision":52,"created":1541345218101,"version":0,"updated":1557153008382},"$loki":119},{"itemID":306,"libraryID":1,"itemKey":"96F7ZIWD","pinned":false,"citekey":"PublicPostFederation2017","meta":{"revision":50,"created":1541366713805,"version":0,"updated":1557153008382},"$loki":120},{"itemID":308,"libraryID":1,"itemKey":"IXFGTNRG","pinned":false,"citekey":"RelayServersPublic","meta":{"revision":50,"created":1541367668075,"version":0,"updated":1557153008382},"$loki":121},{"itemID":310,"libraryID":1,"itemKey":"IR2DE37E","pinned":false,"citekey":"ActivityPubRocksHttps","meta":{"revision":50,"created":1541368148561,"version":0,"updated":1557153008382},"$loki":122},{"itemID":315,"libraryID":1,"itemKey":"KJFEFGGY","pinned":false,"citekey":"webberActivityPubDecentralizedDistributed","meta":{"revision":52,"created":1541368963522,"version":0,"updated":1557153008382},"$loki":124},{"itemID":317,"libraryID":1,"itemKey":"HNSYKUET","pinned":false,"citekey":"RWOTWhitePapers","meta":{"revision":50,"created":1541369365273,"version":0,"updated":1557153008382},"$loki":125},{"itemID":322,"libraryID":1,"itemKey":"6EIWSBUM","pinned":false,"citekey":"LinkedDataSignatures","meta":{"revision":50,"created":1541370475477,"version":0,"updated":1557153008382},"$loki":126},{"itemID":324,"libraryID":1,"itemKey":"HEWQPJKC","pinned":false,"citekey":"ActivityVocabularyHttps","meta":{"revision":50,"created":1541379603932,"version":0,"updated":1557153008382},"$loki":127},{"itemID":326,"libraryID":1,"itemKey":"MDIGE99R","pinned":false,"citekey":"MastodonPubrelay","meta":{"revision":50,"created":1541379817095,"version":0,"updated":1557153008382},"$loki":128},{"itemID":328,"libraryID":1,"itemKey":"BAC8YHY9","pinned":false,"citekey":"LinkedDataSignaturesa","meta":{"revision":50,"created":1541380770727,"version":0,"updated":1557153008382},"$loki":129},{"itemID":331,"libraryID":1,"itemKey":"T5CY5288","pinned":false,"citekey":"LitePubSpecificationDraft","meta":{"revision":50,"created":1541940365220,"version":0,"updated":1557153008382},"$loki":130},{"itemID":334,"libraryID":1,"itemKey":"222I79G9","pinned":false,"citekey":"closeACLsDon","meta":{"revision":52,"created":1541944153584,"version":0,"updated":1557153008382},"$loki":131},{"itemID":336,"libraryID":1,"itemKey":"EFI8GPWG","pinned":false,"citekey":"DecentralizedPublicKey","meta":{"revision":48,"created":1541945593334,"version":0,"updated":1557153008382},"$loki":132},{"itemID":338,"libraryID":1,"itemKey":"NSR97S5F","pinned":false,"citekey":"robinsonDiasporaSocialRelay","meta":{"revision":47,"created":1541958719692,"version":0,"updated":1557153008382},"$loki":133},{"itemID":341,"libraryID":1,"itemKey":"FX6X784A","pinned":false,"citekey":"rowstronSCRIBEDesignLargescale","meta":{"revision":46,"created":1541965007407,"version":0,"updated":1557153008382},"$loki":134},{"itemID":343,"libraryID":1,"itemKey":"N2WIDF9W","pinned":false,"citekey":"rowstronPastryScalableDecentralized","meta":{"revision":46,"created":1541965841206,"version":0,"updated":1557153008382},"$loki":135},{"itemID":345,"libraryID":1,"itemKey":"WXZAGC7C","pinned":true,"citekey":"SplitStream-SOSP","meta":{"revision":44,"created":1541966274331,"version":0,"updated":1557153008382},"$loki":136},{"itemID":346,"libraryID":1,"itemKey":"DX7I4IAW","pinned":true,"citekey":"Anycast-NGC","meta":{"revision":44,"created":1541966274688,"version":0,"updated":1557153008382},"$loki":137},{"itemID":347,"libraryID":1,"itemKey":"7KZCJISX","pinned":true,"citekey":"ScribeEvaluation-Infocom","meta":{"revision":44,"created":1541966274914,"version":0,"updated":1557153008382},"$loki":138},{"itemID":348,"libraryID":1,"itemKey":"94PZEAIQ","pinned":true,"citekey":"SplitStream-IPTPS","meta":{"revision":44,"created":1541966275320,"version":0,"updated":1557153008382},"$loki":139},{"itemID":349,"libraryID":1,"itemKey":"4EFYJ3DL","pinned":true,"citekey":"PastryReliability-IPTPS","meta":{"revision":44,"created":1541966275609,"version":0,"updated":1557153008382},"$loki":140},{"itemID":350,"libraryID":1,"itemKey":"Z2Q8USAV","pinned":true,"citekey":"PastrySecurity-OSDI","meta":{"revision":44,"created":1541966275810,"version":0,"updated":1557153008382},"$loki":141},{"itemID":351,"libraryID":1,"itemKey":"QEQEJLVC","pinned":true,"citekey":"Scribe-NGC","meta":{"revision":44,"created":1541966276023,"version":0,"updated":1557153008382},"$loki":142},{"itemID":352,"libraryID":1,"itemKey":"ET5S9UBS","pinned":true,"citekey":"Pastry-fudico","meta":{"revision":44,"created":1541966276334,"version":0,"updated":1557153008382},"$loki":143},{"itemID":353,"libraryID":1,"itemKey":"96P5MAG9","pinned":true,"citekey":"Scribe-JSAC","meta":{"revision":44,"created":1541966276549,"version":0,"updated":1557153008382},"$loki":144},{"itemID":354,"libraryID":1,"itemKey":"7ZA6BJEW","pinned":true,"citekey":"Rings-EW","meta":{"revision":44,"created":1541966276738,"version":0,"updated":1557153008382},"$loki":145},{"itemID":355,"libraryID":1,"itemKey":"MWWXV9WM","pinned":true,"citekey":"PAST-Hotos","meta":{"revision":44,"created":1541966276930,"version":0,"updated":1557153008382},"$loki":146},{"itemID":356,"libraryID":1,"itemKey":"5YK85AR3","pinned":true,"citekey":"PAST-SOSP","meta":{"revision":44,"created":1541966277320,"version":0,"updated":1557153008382},"$loki":147},{"itemID":357,"libraryID":1,"itemKey":"N5XM2L24","pinned":true,"citekey":"Pastry-Middleware","meta":{"revision":44,"created":1541966277975,"version":0,"updated":1557153008382},"$loki":148},{"itemID":358,"libraryID":1,"itemKey":"EUXFPCUJ","pinned":true,"citekey":"Squirrel-PODC","meta":{"revision":44,"created":1541966278405,"version":0,"updated":1557153008382},"$loki":149},{"itemID":362,"libraryID":1,"itemKey":"2G5VTGYV","pinned":false,"citekey":"SplitStreamHighBandwidthMulticast","meta":{"revision":45,"created":1541967701232,"version":0,"updated":1557153008382},"$loki":150},{"itemID":363,"libraryID":1,"itemKey":"NTU8JLHI","pinned":true,"citekey":"SplitStream-SOSP","meta":{"revision":44,"created":1541967770243,"version":0,"updated":1557153008382},"$loki":151},{"itemID":365,"libraryID":1,"itemKey":"JZQJ6KKQ","pinned":false,"citekey":"mozoTagIndexedDHT2006","meta":{"revision":44,"created":1541975974257,"version":0,"updated":1557153008382},"$loki":152},{"itemID":367,"libraryID":1,"itemKey":"6F4QJAZX","pinned":false,"citekey":"mozoTagIndexedDHT2006a","meta":{"revision":44,"created":1541976214155,"version":0,"updated":1557153008382},"$loki":153},{"itemID":372,"libraryID":1,"itemKey":"4WVPWVW8","pinned":false,"citekey":"LilliputStorageService","meta":{"revision":44,"created":1542042717606,"version":0,"updated":1557153008382},"$loki":154},{"itemID":373,"libraryID":1,"itemKey":"AGA72WIR","pinned":true,"citekey":"paul2017lilliput","meta":{"revision":43,"created":1542042824539,"version":0,"updated":1557153008382},"$loki":155},{"itemID":375,"libraryID":1,"itemKey":"QSNEMF2Q","pinned":true,"citekey":"wiki:xxx","meta":{"revision":40,"created":1542849046811,"version":0,"updated":1557153008382},"$loki":156},{"itemID":376,"libraryID":1,"itemKey":"9YMLXNFU","pinned":true,"citekey":"Dolstra:2004:NSP:1052676.1052686","meta":{"revision":40,"created":1542849547979,"version":0,"updated":1557153008382},"$loki":157},{"itemID":378,"libraryID":1,"itemKey":"LZF76BQI","pinned":true,"citekey":"twitterincNumbersTwitterStatistics2011","meta":{"revision":43,"created":1543051584578,"version":0,"updated":1557153008382},"$loki":158},{"itemID":380,"libraryID":1,"itemKey":"HSUNWPLS","pinned":false,"citekey":"TwitterUsageStatistics","meta":{"revision":38,"created":1543051591174,"version":0,"updated":1557153008382},"$loki":159},{"itemID":384,"libraryID":1,"itemKey":"EKCBHCMH","pinned":false,"citekey":"perfittMegaphoneFaultTolerant2010","meta":{"revision":37,"created":1543233180088,"version":0,"updated":1557153008382},"$loki":160},{"itemID":388,"libraryID":1,"itemKey":"K5MYXUTW","pinned":false,"citekey":"terpstraPeertoPeerApproachContentBased","meta":{"revision":37,"created":1543245354972,"version":0,"updated":1557153008380},"$loki":161},{"itemID":390,"libraryID":1,"itemKey":"7UTYGLXP","pinned":false,"citekey":"mozoScalableTagSearch2008","meta":{"revision":35,"created":1544457571140,"version":0,"updated":1557153008380},"$loki":162},{"itemID":396,"libraryID":1,"itemKey":"Y88BE28F","pinned":false,"citekey":"RWOT5BostonMassachusetts2018","meta":{"revision":32,"created":1545086644786,"version":0,"updated":1557153008380},"$loki":163},{"itemID":398,"libraryID":1,"itemKey":"SKIEMMJW","pinned":false,"citekey":"blog!ActivityPubWorseBetter2019","meta":{"revision":28,"created":1547413193830,"version":0,"updated":1557153008380},"$loki":164},{"itemID":401,"libraryID":1,"itemKey":"CPELY3IK","pinned":false,"citekey":"GroupsOStatusCommunity","meta":{"revision":24,"created":1550492369246,"version":0,"updated":1557153008380},"$loki":165},{"itemID":403,"libraryID":1,"itemKey":"RX2F7ICC","pinned":false,"citekey":"GroupsGnusocialNet","meta":{"revision":24,"created":1550492378254,"version":0,"updated":1557153008380},"$loki":166},{"itemID":406,"libraryID":1,"itemKey":"L29UJ7RC","pinned":false,"citekey":"PleromaRelay","meta":{"revision":24,"created":1550495616194,"version":0,"updated":1557153008380},"$loki":167},{"itemID":409,"libraryID":1,"itemKey":"UE9PJEHS","pinned":false,"citekey":"urdanetaSurveyDHTSecurity2011","meta":{"revision":24,"created":1550506582302,"version":0,"updated":1557153008380},"$loki":168},{"itemID":411,"libraryID":1,"itemKey":"I2QR4HDG","pinned":false,"citekey":"lemmerwebberActivityPubW3CRecommendation2018","meta":{"revision":26,"created":1551546679356,"version":0,"updated":1557153008380},"$loki":169},{"itemID":413,"libraryID":1,"itemKey":"JV4GXH7Y","pinned":false,"citekey":"twitterinc.Twitter2019","meta":{"revision":23,"created":1551548332990,"version":0,"updated":1557153008380},"$loki":170},{"itemID":415,"libraryID":1,"itemKey":"224GPULD","pinned":false,"citekey":"HttpsWwwIetf","meta":{"revision":20,"created":1551734495788,"version":0,"updated":1557153008380},"$loki":171},{"itemID":417,"libraryID":1,"itemKey":"V2TIM2NJ","pinned":true,"citekey":"RFC2119","meta":{"revision":20,"created":1551734559602,"version":0,"updated":1557153008380},"$loki":172},{"itemID":419,"libraryID":1,"itemKey":"LNWIRMAR","pinned":true,"citekey":"DBLP:conf/iptps/ByersCM03","meta":{"revision":19,"created":1552565777154,"version":0,"updated":1557153008380},"$loki":173},{"itemID":422,"libraryID":1,"itemKey":"NJ58AXHC","pinned":false,"citekey":"raoLoadBalancingStructured2003","meta":{"revision":19,"created":1552565984842,"version":0,"updated":1557153008380},"$loki":174},{"itemID":423,"libraryID":1,"itemKey":"PI38JNHE","pinned":false,"citekey":"riecheThermaldissipationbasedApproachBalancing2004","meta":{"revision":19,"created":1552571790466,"version":0,"updated":1557153008380},"$loki":175},{"itemID":427,"libraryID":1,"itemKey":"CJZ3W9V4","pinned":false,"citekey":"kargerSimpleEfficientLoad","meta":{"revision":19,"created":1552571893232,"version":0,"updated":1557153008380},"$loki":176},{"itemID":429,"libraryID":1,"itemKey":"NURL26AE","pinned":false,"citekey":"stoicaChordScalablePeertopeer2003","meta":{"revision":17,"created":1552920278626,"version":0,"updated":1557153008380},"$loki":177},{"itemID":433,"libraryID":1,"itemKey":"P6XGVMV4","pinned":false,"citekey":"maymounkovKademliaPeertoPeerInformation2002","meta":{"revision":17,"created":1552920789372,"version":0,"updated":1557153008380},"$loki":178},{"itemID":436,"libraryID":1,"itemKey":"6MIMFETI","pinned":false,"citekey":"stevensFirstCollisionFull2017","meta":{"revision":16,"created":1553183498292,"version":0,"updated":1557153008380},"$loki":179},{"itemID":437,"libraryID":1,"itemKey":"TGVLBIU3","pinned":false,"citekey":"NodeInfoSpecification","meta":{"revision":17,"created":1553256399540,"version":0,"updated":1557153008380},"$loki":180},{"itemID":439,"libraryID":1,"itemKey":"WRILWH53","pinned":false,"citekey":"IPv6GlobalUnicast","meta":{"revision":16,"created":1553266343088,"version":0,"updated":1557153008380},"$loki":181},{"itemID":443,"libraryID":1,"itemKey":"QJ9R7VFZ","pinned":false,"citekey":"zhuEfficientProximityawareLoad2005","meta":{"revision":16,"created":1553271276120,"version":0,"updated":1557153008378},"$loki":182},{"itemID":446,"libraryID":1,"itemKey":"8TRTYR5Z","pinned":false,"citekey":"godfreyLoadBalancingDynamic2004","meta":{"revision":16,"created":1553271430210,"version":0,"updated":1557153008378},"$loki":183},{"itemID":449,"libraryID":1,"itemKey":"SV42BFRC","pinned":false,"citekey":"yuLeopardLocalityAware2005","meta":{"revision":16,"created":1553273947932,"version":0,"updated":1557153008378},"$loki":184},{"itemID":451,"libraryID":1,"itemKey":"NKHT4LSW","pinned":false,"citekey":"prodromouTagsPubHome2017","meta":{"revision":15,"created":1553528337214,"version":0,"updated":1557153008378},"$loki":185},{"itemID":457,"libraryID":1,"itemKey":"MKKZ9W2D","pinned":false,"citekey":"dabekWideareaCooperativeStorage","meta":{"revision":11,"created":1554387731024,"version":0,"updated":1557153008378},"$loki":186},{"itemID":460,"libraryID":1,"itemKey":"7V3B7KYG","pinned":false,"citekey":"ledlieDistributedSecureLoad2005","meta":{"revision":11,"created":1554389353086,"version":0,"updated":1557153008376},"$loki":187},{"itemID":465,"libraryID":1,"itemKey":"DLK6P7NU","pinned":false,"citekey":"ResearchthingsOpenData","meta":{"revision":10,"created":1554594730192,"version":0,"updated":1557153008376},"$loki":188},{"itemID":467,"libraryID":1,"itemKey":"CE7YRU8G","pinned":false,"citekey":"DiasporaMasterResearchthings","meta":{"revision":10,"created":1554594796450,"version":0,"updated":1557153008376},"$loki":189},{"citekey":"tange_ole_2018_1146014","pinned":true,"itemID":472,"libraryID":1,"itemKey":"WHSGQKBT","meta":{"revision":7,"created":1555017170612,"version":0,"updated":1557153008376},"$loki":190},{"itemID":474,"libraryID":1,"itemKey":"A7KWGKHC","pinned":false,"citekey":"schubertDiasporaTagUsage","meta":{"revision":6,"created":1557150362584,"version":0,"updated":1557153008376},"$loki":191},{"itemID":475,"libraryID":1,"itemKey":"7AMBZDRJ","pinned":false,"citekey":"DiasporaProject","meta":{"revision":5,"created":1557151547468,"version":0,"updated":1557153008374},"$loki":192}],"idIndex":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],"binaryIndices":{"itemID":{"name":"itemID","dirty":false,"values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189]},"itemKey":{"name":"itemKey","dirty":true,"values":[19,76,75,12,50,48,27,49,97,101,23,105,77,106,22,54,99,91,28,46,34,3,51,98,60,18,8,24,82,5,33,107,16,42,4,55,94,11,68,39,102,56,2,93,78,30,37,44,72,57,13,43,1,29,96,61,69,79,62,38,58,103,21,74,32,89,7,40,15,100,81,35,84,86,26,53,88,92,66,14,10,80,108,36,87,95,52,0,104,73,85,45,70,6,64,31,47,67,59,17,63,9,20,83,25,90,71,41,65]},"libraryID":{"name":"libraryID","dirty":true,"values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189]},"citekey":{"name":"citekey","dirty":false,"values":[69,2,110,120,124,12,73,134,56,170,104,103,129,186,189,154,0,163,162,168,113,178,44,151,123,126,127,125,94,115,74,83,177,143,144,145,140,137,138,164,118,169,52,47,49,51,46,160,122,119,185,142,141,139,135,4,112,111,117,136,133,148,147,146,6,7,45,72,114,156,21,85,80,78,8,53,97,101,48,13,106,161,19,89,54,65,75,76,64,128,100,88,82,183,86,105,60,61,41,63,36,35,31,29,30,28,5,24,26,34,33,3,27,37,38,59,62,50,39,1,10,11,107,116,180,77,25,67,68,71,43,173,109,184,166,17,70,15,79,96,175,95,91,159,149,150,18,152,98,157,55,20,87,40,182,14,171,172,130,132,131,32,9,188,102,92,16,108,176,42,174,99,187,158,167,155,93,165,58,84,121,22,153,90,181,81,23,179,57,66]},"pinned":{"name":"pinned","dirty":true,"values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,48,50,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,105,106,107,108,45,46,47,49,51,52,69,103,104]}},"constraints":null,"uniqueNames":["itemID"],"transforms":{},"objType":"citekey","dirty":true,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":false,"transactional":false,"cloneObjects":true,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"ttl":null,"maxId":192,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[]}']
(4)(+0000002): REPLACE INTO "better-bibtex" (name, data) VALUES (?, ?) ['better-bibtex', '{"filename":"better-bibtex","collections":["better-bibtex.citekey","better-bibtex.autoexport"],"databaseVersion":1.5,"engineVersion":1.5,"autosave":false,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":false,"options":{"env":"NA","serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceAdapter":null,"throttledSavePending":false,"throttledCallbacks":[],"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NA"}']
(4)(+0000050): Committed DB transaction 2a6cDdIn
(3)(+0000054): Cached 550 translators in 1002 ms
(3)(+0000004): HTTP GET resource://zotero/schema/repotime.txt
(3)(+0000000): HTTP GET resource://zotero/schema/repotime.txt succeeded with 200
(4)(+0000004): SELECT version FROM version WHERE schema='delete'
(3)(+0000002): Getting contents of input stream
(4)(+0000000): SELECT version FROM version WHERE schema=? ['translators']
(3)(+0000002): Installed translators are up-to-date with XPI
(3)(+0000000): Initializing styles
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/elsevier-harvard.csl
(3)(+0000002): Getting contents of /home/spiollinux/Zotero/styles/cell.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/chicago-author-date.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/apa.csl
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/styles/modern-language-association.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/chicago-fullnote-bibliography.csl
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/styles/vancouver.csl
(3)(+0000002): Getting contents of /home/spiollinux/Zotero/styles/chicago-note-bibliography.csl
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/styles/modern-humanities-research-association.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/nature.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/ieee.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/american-anthropological-association.csl
(3)(+0000004): Cached 12 styles in 54 ms
(3)(+0000002): HTTP GET chrome://zotero/content/locale/csl/locales.json
(3)(+0000000): HTTP GET chrome://zotero/content/locale/csl/locales.json succeeded with 200
(3)(+0000002): HTTP GET resource://zotero/schema/renamed-styles.json
(3)(+0000002): HTTP GET resource://zotero/schema/renamed-styles.json succeeded with 200
(3)(+0000004): HTTP GET resource://zotero/schema/repotime.txt
(3)(+0000000): HTTP GET resource://zotero/schema/repotime.txt succeeded with 200
(4)(+0000004): SELECT version FROM version WHERE schema='delete'
(3)(+0000002): Getting contents of input stream
(4)(+0000002): SELECT version FROM version WHERE schema=? ['styles']
(3)(+0000002): Installed styles are up-to-date with XPI
(4)(+0000000): SELECT version FROM version WHERE schema='repository'
(3)(+0000002): Checking repository for updates
(3)(+0000002): HTTP POST "styles=%5B%7B%22id%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Felsevier-harvard%22%2C%22updated%22%3A1548169032%2C%22url%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Felsevier-harvard%22%7D%2C%7B%22id%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fcell%22%2C%22updated%22%3A1410033753%2C%22url%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fcell%22%7D%2C%7B%22id%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fchicago-author-date%22%2C%22updated%22%3A1546553342%2C%22url%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fchicago-author-date%22%7D%2C%7B%22id%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fapa%22%2C%22updated%22%3A1556383561%2C%22url%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fapa%22%7D%2C%7B%22id%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fmodern-language-association%22%2C%22updated%22%3A1555286253%2C%22url%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fmodern-language-association%22%7D%2C%7B%22id%22%3A%22http%3A%2F%2Fwww.zotero.org%2Fstyles%2Fchicago-fullnote-bibliography%22%2C%22updated%22%3…" (2290 chars) to https://repo.zotero.org/repo/updated?last=1557152871&version=5.0.66&m=3
(3)(+0000524): HTTP POST https://repo.zotero.org/repo/updated?last=1557152871&version=5.0.66&m=3 succeeded with 200
(3)(+0000004): Saving style 'http://www.zotero.org/styles/elsevier-harvard'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/cell'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/chicago-author-date'
(3)(+0000006): Saving style 'http://www.zotero.org/styles/apa'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/modern-language-association'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/chicago-fullnote-bibliography'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/vancouver'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/chicago-note-bibliography'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/modern-humanities-research-association'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/nature'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/ieee'
(3)(+0000004): Saving style 'http://www.zotero.org/styles/american-anthropological-association'
(3)(+0000002): Initializing translators
(4)(+0000000): SELECT rowid, fileName, metadataJSON, lastModifiedTime FROM translatorCache
(3)(+0001262): Cached 550 translators in 1262 ms
(3)(+0000002): Initializing styles
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/styles/elsevier-harvard.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/cell.csl
(3)(+0000002): Getting contents of /home/spiollinux/Zotero/styles/chicago-author-date.csl
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/styles/apa.csl
(3)(+0000008): Getting contents of /home/spiollinux/Zotero/styles/modern-language-association.csl
(3)(+0000008): Getting contents of /home/spiollinux/Zotero/styles/chicago-fullnote-bibliography.csl
(3)(+0000008): Getting contents of /home/spiollinux/Zotero/styles/vancouver.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/chicago-note-bibliography.csl
(3)(+0000008): Getting contents of /home/spiollinux/Zotero/styles/modern-humanities-research-association.csl
(3)(+0000008): Getting contents of /home/spiollinux/Zotero/styles/nature.csl
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/styles/ieee.csl
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/styles/american-anthropological-association.csl
(3)(+0000006): Cached 12 styles in 78 ms
(3)(+0000002): HTTP GET chrome://zotero/content/locale/csl/locales.json
(3)(+0000000): HTTP GET chrome://zotero/content/locale/csl/locales.json succeeded with 200
(3)(+0000002): HTTP GET resource://zotero/schema/renamed-styles.json
(3)(+0000002): HTTP GET resource://zotero/schema/renamed-styles.json succeeded with 200
(4)(+0000002): Beginning DB transaction BnepFlcS
(4)(+0000002): REPLACE INTO version (schema,version) VALUES (?,?) ['repository', 1557153011]
(4)(+0000002): REPLACE INTO version (schema,version) VALUES (?,?) ['lastcheck', 1557153012]
(4)(+0000008): Committed DB transaction BnepFlcS
(3)(+0000002): Initializing DB backup idle observer
(4)(+0000002): Beginning DB transaction Z06sVyg2
(3)(+0000000): Initializing DB backup idle observer
(3)(+0000002): Preloading a515a220-6fef-45ea-9842-8025dfebcc8f for Quick Copy
(3)(+0000002): {better-bibtex +5154} Startup progress: Warten auf Zotero-Übersetzer took 5.154 s
(3)(+0000000): {better-bibtex +0} Startup progress: Starte Serialisierungs-Cache...
(3)(+0000000): {better-bibtex +0} events: handler registered for preference-changed
(3)(+0000000): {better-bibtex +0} JournalAbbrev.reset
(3)(+0000000): {better-bibtex +0} JournalAbbrev.reset: {"style":""}
(3)(+0000000): {better-bibtex +0} JournalAbbrev.init: done
(3)(+0000000): {better-bibtex +0} Startup progress: Starte Serialisierungs-Cache took 0 s
(3)(+0000000): {better-bibtex +0} Startup progress: Lade Zeitschriften-Abkürzer...
(3)(+0000000): {better-bibtex +0} Startup progress: Lade Zeitschriften-Abkürzer took 0 s
(3)(+0000000): {better-bibtex +0} Startup progress: Installiere kompilierte Export-Module...
(3)(+0000004): {better-bibtex +4} Translators.install: installed = {"translatorID":"0f238e69-043e-4882-93bf-342de007de19","translatorType":2,"label":"Better CSL YAML","creator":"Emiliano heyns","target":"yaml","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"hash":"1080bb4b6ed72fa636332d93164937d3-c60cf06859f43bc0d3ef8da6e128f363"},"displayOptions":{"keepUpdated":false},"runMode":1,"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/Better CSL YAML.js","fileName":"Better CSL YAML.js","metadata":{"translatorID":"0f238e69-043e-4882-93bf-342de007de19","translatorType":2,"label":"Better CSL YAML","creator":"Emiliano heyns","target":"yaml","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"hash":"1080bb4b6ed72fa636332d93164937d3-c60cf06859f43bc0d3ef8da6e128f363"},"displayOptions":{"keepUpdated":false}}}
(3)(+0000002): Getting contents of /home/spiollinux/Zotero/translators/Better BibTeX Citation Key Quick Copy.js
(3)(+0000008): {better-bibtex +10} Translators.install: Better CSL YAML not reinstalling 1080bb4b6ed72fa636332d93164937d3-c60cf06859f43bc0d3ef8da6e128f363
(3)(+0000000): {better-bibtex +0} Translators.install: installed = {"translatorID":"19afa3fd-1c7f-4eb8-a37e-8d07768493e8","translatorType":2,"label":"Citation graph","creator":"Emiliano heyns","target":"gml","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"hash":"6fe297b7f506baa6891c1f3c60946cd8-45cd41e0f0886212f775ff496e60c0c4"},"runMode":1,"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/Citation graph.js","fileName":"Citation graph.js","metadata":{"translatorID":"19afa3fd-1c7f-4eb8-a37e-8d07768493e8","translatorType":2,"label":"Citation graph","creator":"Emiliano heyns","target":"gml","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"hash":"6fe297b7f506baa6891c1f3c60946cd8-45cd41e0f0886212f775ff496e60c0c4"}}}
(4)(+0000004): SELECT key AS domainPath, value AS format FROM settings WHERE setting='quickCopySite'
(4)(+0000000): Committed DB transaction Z06sVyg2
(4)(+0000002): Beginning DB transaction 6uVMa8L4
(3)(+0000002): {better-bibtex +8} Translators.install: Citation graph not reinstalling 6fe297b7f506baa6891c1f3c60946cd8-45cd41e0f0886212f775ff496e60c0c4
(3)(+0000000): {better-bibtex +0} Translators.install: installed = {"translatorID":"36a3b0b5-bad0-4a04-b79b-441c7cef77db","translatorType":3,"label":"BetterBibTeX JSON","creator":"Emiliano Heyns","target":"json","priority":99,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"async":true,"getCollections":true,"hash":"e71bafc74fd9463e32e018a190832a99-d9525b9cd18b860be2ce0b44821c1c5a"},"displayOptions":{"exportNotes":true,"exportFileData":false},"runMode":1,"importRegexp":{},"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/BetterBibTeX JSON.js","fileName":"BetterBibTeX JSON.js","metadata":{"translatorID":"36a3b0b5-bad0-4a04-b79b-441c7cef77db","translatorType":3,"label":"BetterBibTeX JSON","creator":"Emiliano Heyns","target":"json","priority":99,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"async":true,"getCollections":true,"hash":"e71bafc74fd9463e32e018a190832a99-d9525b9cd18b860be2ce0b44821c1c5a"},"displayOptions":{"exportNotes":true,"exportFileData":false}}}
(4)(+0000004): CREATE TEMPORARY TABLE tagDelete AS SELECT tagID FROM tags WHERE tagID NOT IN (SELECT tagID FROM itemTags)
(3)(+0000002): {better-bibtex +6} Translators.install: BetterBibTeX JSON not reinstalling e71bafc74fd9463e32e018a190832a99-d9525b9cd18b860be2ce0b44821c1c5a
(3)(+0000004): {better-bibtex +0} Translators.install: installed = {"translatorID":"a515a220-6fef-45ea-9842-8025dfebcc8f","translatorType":2,"label":"Better BibTeX Citation Key Quick Copy","creator":"Emiliano heyns","target":"txt","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","inRepository":false,"configOptions":{"hash":"42417dd2bd21c624a384e95976ce486e-be4de93098e45b13ec42986fe5a07408"},"displayOptions":{"quickCopyMode":""},"runMode":1,"cacheCode":true,"path":"/home/spiollinux/Zotero/translators/Better BibTeX Citation Key Quick Copy.js","fileName":"Better BibTeX Citation Key Quick Copy.js","metadata":{"translatorID":"a515a220-6fef-45ea-9842-8025dfebcc8f","translatorType":2,"label":"Better BibTeX Citation Key Quick Copy","creator":"Emiliano heyns","target":"txt","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","inRepository":false,"configOptions":{"hash":"42417dd2bd21c624a384e95976ce486e-be4de93098e45b13ec42986fe5a07408"},"displayOptions":{"quickCopyMode":""}},"code":"{\n\t\"translatorID\": \"a515a220-6fef-45ea-9842-8025dfebcc8f\",\n\t\"translatorType\": 2,\n\t\"label\": \"Better BibTeX Citation Key Quick Copy\",\n\t\"creator\": \"Emiliano heyns\",\n\t\"target\": \"txt\",\n\t\"minVersion\": \"4.0.27\",\n\t\"priority\": 100,\n\t\"inRepository\": false,\n\t\"configOptions\": {\n\t\t\"hash\": \"42417dd2bd21c624a384e95976ce486e-be4de93098e45b13ec42986fe5a07408\"\n\t},\n\t\"displayOptions\": {\n\t\t\"quickCopyMode\": \"\"\n\t},\n\t\"browserSupport\": \"gcsv\",\n\t\"lastUpdated\": \"2019-04-29 19:26:46\"\n}\n\nvar Translator = {\n initialize: function () {},\n BetterBibTeXCitationKeyQuickCopy: true,\n BetterTeX: false,\n BetterCSL: false,\n header: ZOTERO_TRANSLATOR_INFO,\n // header: < %- JSON.stringify(header) % >,\n preferences: {\"DOIandURL\":\"both\",\"ascii\":\"\",\"asciiBibLaTeX\":false,\"asciiBibTeX\":true,\"autoAbbrev\":false,\"autoAbbrevStyle\":\"\",\"autoExport\":\"immediate\",\"autoExportDelay\":1,\"autoExportIdleWait\":10,\"autoExportPrimeExportCacheBatch\":4,\"autoExportPrimeExportCacheDelay\":100,\"autoExportPrimeExportCacheThreshold\":0,\"autoExportTooLong\":10,\"autoPin\":false,\"auxImport\":false,\"biblatexExtendedDateFormat\":true,\"biblatexExtendedNameFormat\":false,\"bibtexParticleNoOp\":false,\"bibtexURL\":\"off\",\"cacheFlushInterval\":5,\"citeCommand\":\"cite\",\"citekeyFold\":true,\"citekeyFormat\":\" ​ [auth:lower][shorttitle3_3][year]\",\"citeprocNoteCitekey\":false,\"csquotes\":\"\",\"debugLog\":\"\",\"exportBibTeXStrings\":\"off\",\"git\":\"config\",\"importBibTeXStrings\":true,\"itemObserverDelay\":100,\"jabrefFormat\":0,\"keyConflictPolicy\":\"keep\",\"keyScope\":\"library\",\"kuroshiro\":false,\"lockedInit\":false,\"parseParticles\":true,\"postscript\":\"\",\"qualityReport\":false,\"quickCopyMode\":\"latex\",\"quickCopyPandocBrackets\":false,\"rawLaTag\":\"#LaTeX\",\"relativeFilePaths\":false,\"scrubDatabase\":false,\"skipFields\":\"\",\"skipWords\":\"a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum\",\"sorted\":false,\"strings\":\"\",\"suppressBraceProtection\":false,\"suppressTitleCase\":false,\"testing\":false,\"warnBulkModify\":10},\n options: {\"quickCopyMode\":\"\"},\n\n stringCompare: (new Intl.Collator('en')).compare,\n\n configure: function(stage) {\n var version = Zotero.BetterBibTeX.version();\n this.isZotero = version.Zotero.isZotero;\n this.isJurisM = version.Zotero.isJurisM;\n\n this.BetterCSL = this.BetterCSLYAML || this.BetterCSLJSON;\n\n this.debugEnabled = Zotero.BetterBibTeX.debugEnabled();\n this.unicode = true; // set by Better BibTeX later\n\n if (stage == 'detectImport') {\n this.options = {}\n } else {\n this.pathSep = (Zotero.BetterBibTeX.platform().toLowerCase().startsWith('win')) ? '\\\\' : '/'\n\n this.references = []\n\n for (var key in this.options) {\n if (typeof this.options[key] === 'boolean') {\n this.options[key] = !!Zotero.getOption(key)\n } else {\n this.options[key] = Zotero.getOption(key)\n }\n }\n // special handling\n\n if (stage === 'doExport') {\n this.options.exportPath = Zotero.getOption('exportPath')\n if (this.options.exportPath && !this.options.exportPath.endsWith(this.pathSep)) this.options.exportPath += this.pathSep\n }\n }\n\n for (const pref of Object.keys(this.preferences)) {\n let value = undefined\n\n try {\n value = Zotero.getOption(`preference_${pref}`)\n } catch (err) {\n value = undefined\n }\n\n if (typeof value === 'undefined') {\n value = Zotero.getHiddenPref('better-bibtex.' + pref)\n Zotero.debug(`preference load: ${pref} = ${value}`)\n } else {\n Zotero.debug(`preference override: ${pref} = ${value}`)\n }\n this.preferences[pref] = value\n }\n // special handling\n this.preferences.skipWords = this.preferences.skipWords.toLowerCase().trim().split(/\\s*,\\s*/).filter(function(s) { return s })\n this.preferences.skipFields = this.preferences.skipFields.toLowerCase().trim().split(/\\s*,\\s*/).filter(function(s) { return s })\n if (!this.preferences.rawLaTag) this.preferences.rawLaTag = '#LaTeX'\n Zotero.debug('prefs loaded: ' + JSON.stringify(this.preferences, null, 2))\n\n if (stage == 'doExport') {\n this.caching = !(\n // when exporting file data you get relative paths, when not, you get absolute paths, only one version can go into the cache\n this.options.exportFileData\n\n // jabref 4 stores collection info inside the reference, and collection info depends on which part of your library you're exporting\n || (this.BetterTeX && this.preferences.jabrefFormat === 4)\n\n // if you're looking at this.options.exportPath in the postscript you're probably outputting something different based on it\n || ((this.preferences.postscript || '').indexOf('Translator.options.exportPath') >= 0)\n )\n Zotero.debug('export caching:' + this.caching)\n }\n\n this.collections = {}\n if (stage == 'doExport' && this.header.configOptions && this.header.configOptions.getCollections && Zotero.nextCollection) {\n let collection\n while (collection = Zotero.nextCollection()) {\n let children = collection.children || collection.descendents || []\n let key = (collection.primary ? collection.primary : collection).key\n\n this.collections[key] = {\n id: collection.id,\n key: key,\n parent: collection.fields.parentKey,\n name: collection.name,\n items: collection.childItems,\n collections: children.filter(function(coll) { return coll.type === 'collection'}).map(function(coll) { return coll.key}),\n // items: (item.itemID for item in children when item.type != 'collection')\n // descendents: undefined\n // children: undefined\n // childCollections: undefined\n // primary: undefined\n // fields: undefined\n // type: undefined\n // level: undefined\n }\n }\n for (const collection of Object.values(this.collections)) {\n if (collection.parent && !this.collections[collection.parent]) {\n collection.parent = false\n Zotero.debug('BBT translator: collection with key ' + collection.key + ' has non-existent parent ' + collection.parent + ', assuming root collection')\n }\n }\n }\n }\n};\n\n\nfunction doExport() {\n const start = Date.now()\n Translator.configure('doExport')\n Translator.initialize()\n Translator.doExport()\n Zotero.debug(\"Better BibTeX Citation Key Quick Copy\" + ' export took ' + (Date.now() - start))\n}\n\n\n\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./Better BibTeX Citation Key Quick Copy.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"../gen/itemfields.ts\":\n/*!****************************!*\\\n !*** ../gen/itemfields.ts ***!\n \\****************************/\n/*! no static exports found */\n/*! all exports used */\n/***/ (function(module, exports) {\n\n\n Zotero.debug('zotero-better-bibtex: loading gen/itemfields.ts')\n ; try { \"use strict\";\n// tslint:disable:one-line\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// don't take this from Translator.isZotero because that initializes after library load\nconst client = Zotero.BetterBibTeX.version().Zotero;\nconst zotero = client.isZotero;\nconst jurism = client.isJurisM;\nexports.valid = new Map([\n ['conferencePaper', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['DOI', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['conferenceName', true],\n ['date', true],\n ['extra', true],\n ['institution', jurism],\n ['issue', jurism],\n ['language', true],\n ['libraryCatalog', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', true],\n ['publisher', true],\n ['rights', true],\n ['series', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['journalArticle', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['DOI', true],\n ['ISSN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['issue', true],\n ['journalAbbreviation', true],\n ['language', true],\n ['libraryCatalog', true],\n ['pages', true],\n ['publicationTitle', true],\n ['rights', true],\n ['series', true],\n ['seriesText', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['audioRecording', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['numberOfVolumes', true],\n ['place', true],\n ['publisher', true],\n ['rights', true],\n ['runningTime', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['book', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['edition', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', jurism],\n ['numPages', true],\n ['numberOfVolumes', true],\n ['place', true],\n ['publisher', true],\n ['rights', true],\n ['series', true],\n ['seriesNumber', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['bookSection', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['edition', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['numberOfVolumes', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', true],\n ['publisher', true],\n ['rights', true],\n ['series', true],\n ['seriesNumber', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['computerProgram', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['libraryCatalog', true],\n ['place', true],\n ['programmingLanguage', true],\n ['publisher', true],\n ['rights', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['system', true],\n ['title', true],\n ['url', true],\n ['versionNumber', true],\n ]),\n ],\n ['dictionaryEntry', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['edition', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['numberOfVolumes', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', true],\n ['publisher', true],\n ['rights', true],\n ['series', true],\n ['seriesNumber', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['encyclopediaArticle', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['edition', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['numberOfVolumes', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', true],\n ['publisher', true],\n ['rights', true],\n ['series', true],\n ['seriesNumber', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['map', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['edition', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['place', true],\n ['publisher', true],\n ['rights', true],\n ['scale', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['videoRecording', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISBN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['numberOfVolumes', true],\n ['place', true],\n ['publisher', true],\n ['rights', true],\n ['runningTime', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ['websiteTitle', jurism],\n ]),\n ],\n ['magazineArticle', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISSN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['issue', true],\n ['language', true],\n ['libraryCatalog', true],\n ['pages', true],\n ['place', jurism],\n ['publicationTitle', true],\n ['publisher', jurism],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['newspaperArticle', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['ISSN', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['court', jurism],\n ['date', true],\n ['edition', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', true],\n ['rights', true],\n ['section', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['artwork', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['artworkSize', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['publicationTitle', jurism],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['bill', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archiveLocation', jurism],\n ['code', true],\n ['date', true],\n ['extra', true],\n ['history', true],\n ['language', true],\n ['legislativeBody', true],\n ['number', true],\n ['pages', true],\n ['rights', true],\n ['section', true],\n ['session', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['blogPost', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['publicationTitle', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['case', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', jurism],\n ['archiveLocation', jurism],\n ['callNumber', jurism],\n ['court', true],\n ['date', true],\n ['extra', true],\n ['filingDate', jurism],\n ['history', true],\n ['issue', jurism],\n ['language', true],\n ['number', true],\n ['pages', true],\n ['place', jurism],\n ['publicationTitle', jurism],\n ['publisher', jurism],\n ['reporter', zotero],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', true],\n ]),\n ],\n ['classic', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', jurism],\n ['accessDate', jurism],\n ['archive', jurism],\n ['archiveLocation', jurism],\n ['callNumber', jurism],\n ['date', jurism],\n ['extra', jurism],\n ['language', jurism],\n ['libraryCatalog', jurism],\n ['numPages', jurism],\n ['place', jurism],\n ['rights', jurism],\n ['shortTitle', jurism],\n ['title', jurism],\n ['type', jurism],\n ['url', jurism],\n ['volume', jurism],\n ]),\n ],\n ['document', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['publisher', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['versionNumber', jurism],\n ]),\n ],\n ['email', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['film', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['publisher', true],\n ['rights', true],\n ['runningTime', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['forumPost', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['publicationTitle', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['gazette', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', jurism],\n ['accessDate', jurism],\n ['code', jurism],\n ['codeNumber', jurism],\n ['date', jurism],\n ['extra', jurism],\n ['history', jurism],\n ['language', jurism],\n ['number', jurism],\n ['pages', jurism],\n ['publisher', jurism],\n ['rights', jurism],\n ['section', jurism],\n ['session', jurism],\n ['shortTitle', jurism],\n ['title', jurism],\n ['url', jurism],\n ]),\n ],\n ['hearing', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archiveLocation', jurism],\n ['committee', true],\n ['date', true],\n ['extra', true],\n ['history', true],\n ['language', true],\n ['legislativeBody', true],\n ['number', true],\n ['numberOfVolumes', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', jurism],\n ['publisher', true],\n ['rights', true],\n ['session', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ['volume', jurism],\n ]),\n ],\n ['instantMessage', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['interview', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['place', jurism],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['letter', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['manuscript', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['numPages', true],\n ['place', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['patent', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['applicationNumber', true],\n ['assignee', true],\n ['country', true],\n ['date', true],\n ['extra', true],\n ['filingDate', true],\n ['genre', jurism],\n ['issuingAuthority', true],\n ['language', true],\n ['legalStatus', true],\n ['number', true],\n ['pages', true],\n ['place', true],\n ['priorityNumbers', true],\n ['references', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['podcast', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', jurism],\n ['extra', true],\n ['language', true],\n ['medium', true],\n ['number', true],\n ['publisher', jurism],\n ['rights', true],\n ['runningTime', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['presentation', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['meetingName', true],\n ['place', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['radioBroadcast', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['number', true],\n ['place', true],\n ['publicationTitle', true],\n ['publisher', true],\n ['rights', true],\n ['runningTime', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['regulation', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', jurism],\n ['accessDate', jurism],\n ['code', jurism],\n ['codeNumber', jurism],\n ['date', jurism],\n ['extra', jurism],\n ['history', jurism],\n ['language', jurism],\n ['number', jurism],\n ['pages', jurism],\n ['publisher', jurism],\n ['rights', jurism],\n ['section', jurism],\n ['session', jurism],\n ['shortTitle', jurism],\n ['title', jurism],\n ['url', jurism],\n ]),\n ],\n ['report', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['committee', jurism],\n ['date', true],\n ['extra', true],\n ['institution', jurism],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', jurism],\n ['number', true],\n ['pages', true],\n ['place', true],\n ['publicationTitle', jurism],\n ['publisher', zotero],\n ['rights', true],\n ['seriesTitle', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['standard', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', jurism],\n ['accessDate', jurism],\n ['archive', jurism],\n ['archiveLocation', jurism],\n ['callNumber', jurism],\n ['date', jurism],\n ['extra', jurism],\n ['language', jurism],\n ['libraryCatalog', jurism],\n ['number', jurism],\n ['publisher', jurism],\n ['rights', jurism],\n ['shortTitle', jurism],\n ['title', jurism],\n ['url', jurism],\n ['versionNumber', jurism],\n ]),\n ],\n ['statute', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['code', true],\n ['codeNumber', true],\n ['date', true],\n ['extra', true],\n ['history', true],\n ['language', true],\n ['number', true],\n ['pages', true],\n ['publisher', jurism],\n ['rights', true],\n ['section', true],\n ['session', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['thesis', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['numPages', true],\n ['place', true],\n ['publisher', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['treaty', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', jurism],\n ['accessDate', jurism],\n ['archive', jurism],\n ['archiveLocation', jurism],\n ['callNumber', jurism],\n ['date', jurism],\n ['extra', jurism],\n ['language', jurism],\n ['libraryCatalog', jurism],\n ['pages', jurism],\n ['publisher', jurism],\n ['reporter', jurism],\n ['rights', jurism],\n ['section', jurism],\n ['shortTitle', jurism],\n ['title', jurism],\n ['url', jurism],\n ['volume', jurism],\n ]),\n ],\n ['tvBroadcast', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['archive', true],\n ['archiveLocation', true],\n ['callNumber', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['libraryCatalog', true],\n ['medium', true],\n ['number', true],\n ['place', true],\n ['publicationTitle', true],\n ['publisher', true],\n ['rights', true],\n ['runningTime', true],\n ['shortTitle', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['webpage', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['abstractNote', true],\n ['accessDate', true],\n ['date', true],\n ['extra', true],\n ['language', true],\n ['publicationTitle', true],\n ['rights', true],\n ['shortTitle', true],\n ['title', true],\n ['type', true],\n ['url', true],\n ]),\n ],\n ['attachment', new Map([\n ['itemType', true],\n ['creators', true],\n ['tags', true],\n ['attachments', true],\n ['notes', true],\n ['seeAlso', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ['multi', true],\n ['accessDate', true],\n ['title', true],\n ['url', true],\n ]),\n ],\n ['note', new Map([\n ['itemType', true],\n ['tags', true],\n ['note', true],\n ['id', true],\n ['itemID', true],\n ['dateAdded', true],\n ['dateModified', true],\n ]),\n ],\n]);\nfunction unalias(item) {\n // date\n if (typeof item.dateDecided !== 'undefined') {\n item.date = item.dateDecided;\n delete item.dateDecided;\n }\n else if (jurism && typeof item.dateEnacted !== 'undefined') {\n item.date = item.dateEnacted;\n delete item.dateEnacted;\n }\n else if (typeof item.dateEnacted !== 'undefined') {\n item.date = item.dateEnacted;\n delete item.dateEnacted;\n }\n else if (typeof item.issueDate !== 'undefined') {\n item.date = item.issueDate;\n delete item.issueDate;\n }\n // medium\n if (typeof item.artworkMedium !== 'undefined') {\n item.medium = item.artworkMedium;\n delete item.artworkMedium;\n }\n else if (typeof item.audioFileType !== 'undefined') {\n item.medium = item.audioFileType;\n delete item.audioFileType;\n }\n else if (typeof item.audioRecordingFormat !== 'undefined') {\n item.medium = item.audioRecordingFormat;\n delete item.audioRecordingFormat;\n }\n else if (typeof item.interviewMedium !== 'undefined') {\n item.medium = item.interviewMedium;\n delete item.interviewMedium;\n }\n else if (typeof item.videoRecordingFormat !== 'undefined') {\n item.medium = item.videoRecordingFormat;\n delete item.videoRecordingFormat;\n }\n // number\n if (typeof item.billNumber !== 'undefined') {\n item.number = item.billNumber;\n delete item.billNumber;\n }\n else if (typeof item.docketNumber !== 'undefined') {\n item.number = item.docketNumber;\n delete item.docketNumber;\n }\n else if (typeof item.documentNumber !== 'undefined') {\n item.number = item.documentNumber;\n delete item.documentNumber;\n }\n else if (typeof item.episodeNumber !== 'undefined') {\n item.number = item.episodeNumber;\n delete item.episodeNumber;\n }\n else if (typeof item.patentNumber !== 'undefined') {\n item.number = item.patentNumber;\n delete item.patentNumber;\n }\n else if (jurism && typeof item.publicLawNumber !== 'undefined') {\n item.number = item.publicLawNumber;\n delete item.publicLawNumber;\n }\n else if (typeof item.publicLawNumber !== 'undefined') {\n item.number = item.publicLawNumber;\n delete item.publicLawNumber;\n }\n else if (typeof item.reportNumber !== 'undefined') {\n item.number = item.reportNumber;\n delete item.reportNumber;\n }\n // pages\n if (typeof item.codePages !== 'undefined') {\n item.pages = item.codePages;\n delete item.codePages;\n }\n else if (typeof item.firstPage !== 'undefined') {\n item.pages = item.firstPage;\n delete item.firstPage;\n }\n // publicationTitle\n if (typeof item.blogTitle !== 'undefined') {\n item.publicationTitle = item.blogTitle;\n delete item.blogTitle;\n }\n else if (typeof item.bookTitle !== 'undefined') {\n item.publicationTitle = item.bookTitle;\n delete item.bookTitle;\n }\n else if (jurism && typeof item.bookTitle !== 'undefined') {\n item.publicationTitle = item.bookTitle;\n delete item.bookTitle;\n }\n else if (typeof item.dictionaryTitle !== 'undefined') {\n item.publicationTitle = item.dictionaryTitle;\n delete item.dictionaryTitle;\n }\n else if (typeof item.encyclopediaTitle !== 'undefined') {\n item.publicationTitle = item.encyclopediaTitle;\n delete item.encyclopediaTitle;\n }\n else if (typeof item.forumTitle !== 'undefined') {\n item.publicationTitle = item.forumTitle;\n delete item.forumTitle;\n }\n else if (typeof item.proceedingsTitle !== 'undefined') {\n item.publicationTitle = item.proceedingsTitle;\n delete item.proceedingsTitle;\n }\n else if (typeof item.programTitle !== 'undefined') {\n item.publicationTitle = item.programTitle;\n delete item.programTitle;\n }\n else if (jurism && typeof item.reporter !== 'undefined') {\n item.publicationTitle = item.reporter;\n delete item.reporter;\n }\n else if (jurism && typeof item.websiteTitle !== 'undefined') {\n item.publicationTitle = item.websiteTitle;\n delete item.websiteTitle;\n }\n else if (typeof item.websiteTitle !== 'undefined') {\n item.publicationTitle = item.websiteTitle;\n delete item.websiteTitle;\n }\n // publisher\n if (typeof item.company !== 'undefined') {\n item.publisher = item.company;\n delete item.company;\n }\n else if (typeof item.distributor !== 'undefined') {\n item.publisher = item.distributor;\n delete item.distributor;\n }\n else if (zotero && typeof item.institution !== 'undefined') {\n item.publisher = item.institution;\n delete item.institution;\n }\n else if (typeof item.label !== 'undefined') {\n item.publisher = item.label;\n delete item.label;\n }\n else if (typeof item.network !== 'undefined') {\n item.publisher = item.network;\n delete item.network;\n }\n else if (typeof item.studio !== 'undefined') {\n item.publisher = item.studio;\n delete item.studio;\n }\n else if (typeof item.university !== 'undefined') {\n item.publisher = item.university;\n delete item.university;\n }\n // title\n if (typeof item.caseName !== 'undefined') {\n item.title = item.caseName;\n delete item.caseName;\n }\n else if (jurism && typeof item.nameOfAct !== 'undefined') {\n item.title = item.nameOfAct;\n delete item.nameOfAct;\n }\n else if (typeof item.nameOfAct !== 'undefined') {\n item.title = item.nameOfAct;\n delete item.nameOfAct;\n }\n else if (typeof item.subject !== 'undefined') {\n item.title = item.subject;\n delete item.subject;\n }\n // type\n if (typeof item.genre !== 'undefined') {\n item.type = item.genre;\n delete item.genre;\n }\n else if (typeof item.letterType !== 'undefined') {\n item.type = item.letterType;\n delete item.letterType;\n }\n else if (jurism && typeof item.manuscriptType !== 'undefined') {\n item.type = item.manuscriptType;\n delete item.manuscriptType;\n }\n else if (typeof item.manuscriptType !== 'undefined') {\n item.type = item.manuscriptType;\n delete item.manuscriptType;\n }\n else if (typeof item.mapType !== 'undefined') {\n item.type = item.mapType;\n delete item.mapType;\n }\n else if (typeof item.postType !== 'undefined') {\n item.type = item.postType;\n delete item.postType;\n }\n else if (typeof item.presentationType !== 'undefined') {\n item.type = item.presentationType;\n delete item.presentationType;\n }\n else if (typeof item.reportType !== 'undefined') {\n item.type = item.reportType;\n delete item.reportType;\n }\n else if (typeof item.thesisType !== 'undefined') {\n item.type = item.thesisType;\n delete item.thesisType;\n }\n else if (typeof item.websiteType !== 'undefined') {\n item.type = item.websiteType;\n delete item.websiteType;\n }\n // volume\n if (typeof item.codeVolume !== 'undefined') {\n item.volume = item.codeVolume;\n delete item.codeVolume;\n }\n else if (typeof item.reporterVolume !== 'undefined') {\n item.volume = item.reporterVolume;\n delete item.reporterVolume;\n }\n}\n// import & export translators expect different creator formats... nice\nfunction simplifyForExport(item, dropAttachments = false) {\n unalias(item);\n item.tags = item.tags ? item.tags.map(tag => tag.tag) : [];\n item.notes = item.notes ? item.notes.map(note => note.note || note) : [];\n if (item.filingDate)\n item.filingDate = item.filingDate.replace(/^0000-00-00 /, '');\n if (item.creators) {\n for (const creator of item.creators) {\n if (creator.fieldMode) {\n creator.name = creator.name || creator.lastName;\n delete creator.lastName;\n delete creator.firstName;\n delete creator.fieldMode;\n }\n }\n }\n if (dropAttachments)\n item.attachments = [];\n return item;\n}\nexports.simplifyForExport = simplifyForExport;\nfunction simplifyForImport(item) {\n unalias(item);\n if (item.creators) {\n for (const creator of item.creators) {\n if (creator.name) {\n creator.lastName = creator.lastName || creator.name;\n creator.fieldMode = 1;\n delete creator.firstName;\n delete creator.name;\n }\n }\n }\n return item;\n}\nexports.simplifyForImport = simplifyForImport;\n; \n Zotero.debug('zotero-better-bibtex: loaded gen/itemfields.ts')\n ; } catch ($wrap_loader_catcher_gen_itemfields_ts) { \n var $wrap_loader_message_gen_itemfields_ts = 'Error: zotero-better-bibtex: load of gen/itemfields.ts failed:' + $wrap_loader_catcher_gen_itemfields_ts + '::' + $wrap_loader_catcher_gen_itemfields_ts.stack;\n if (typeof Zotero.logError === 'function') {\n Zotero.logError($wrap_loader_message_gen_itemfields_ts)\n } else {\n Zotero.debug($wrap_loader_message_gen_itemfields_ts)\n }\n };\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/const.js\":\n/*!***********************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/const.js ***!\n \\***********************************************************/\n/*! exports provided: BibFieldTypes, BibTypes */\n/*! exports used: BibFieldTypes, BibTypes */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BibFieldTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BibTypes; });\n/*::\nexport type MarkObject = {\n type: string;\n}\n\ntype OtherNodeObject = {\n type: string;\n marks?: Array<MarkObject>;\n attrs?: Object;\n}\n\nexport type TextNodeObject = {\n type: 'text';\n text: string;\n marks?: Array<MarkObject>;\n attrs?: Object;\n}\n\nexport type NodeObject = OtherNodeObject | TextNodeObject;\n\nexport type NodeArray = Array<NodeObject>;\n\nexport type EntryObject = {\n entry_key: string;\n incomplete?: boolean;\n bib_type: string;\n fields: Object;\n unexpected_fields?: Object;\n unknown_fields?: UnknownFieldsObject;\n}\n\nexport type NameDictObject = {\n literal?: NodeArray;\n family?: NodeArray;\n given?: NodeArray;\n prefix?: NodeArray;\n suffix?: NodeArray;\n useprefix?: boolean;\n}\n\nexport type GroupObject = {\n name: string;\n references: Array<string>;\n groups: Array<GroupObject>;\n}\n\nexport type RangeArray = [NodeArray, NodeArray] | [NodeArray];\n\n*/\n\n/** A list of supported languages (without aliases) in the langid field */\nconst langidOptions = {\n \"acadian\": {\n \"csl\": \"fr-CA\",\n \"biblatex\": \"acadian\"\n },\n \"afrikaans\": {\n \"csl\": \"af-ZA\",\n \"biblatex\": \"afrikaans\"\n },\n \"arabic\": {\n \"csl\": \"ar\",\n \"biblatex\": \"arabic\"\n },\n \"basque\": {\n \"csl\": \"eu\",\n \"biblatex\": \"basque\"\n },\n \"bulgarian\": {\n \"csl\": \"bg-BG\",\n \"biblatex\": \"bulgarian\"\n },\n \"catalan\": {\n \"csl\": \"ca-AD\",\n \"biblatex\": \"catalan\"\n },\n \"chinese\": {\n \"csl\": \"zh-CN\",\n \"biblatex\": \"pinyin\"\n },\n \"croatian\": {\n \"csl\": \"hr-HR\",\n \"biblatex\": \"croatian\"\n },\n \"czech\": {\n \"csl\": \"cs-CZ\",\n \"biblatex\": \"czech\"\n },\n \"danish\": {\n \"csl\": \"da-DK\",\n \"biblatex\": \"danish\"\n },\n \"dutch\": {\n \"csl\": \"nl-NL\",\n \"biblatex\": \"dutch\"\n },\n \"auenglish\": {\n \"csl\": \"en-GB\",\n \"biblatex\": \"australian\"\n },\n \"caenglish\": {\n \"csl\": \"en-US\",\n \"biblatex\": \"canadian\"\n },\n \"nzenglish\": {\n \"csl\": \"en-GB\",\n \"biblatex\": \"newzealand\"\n },\n \"ukenglish\": {\n \"csl\": \"en-GB\",\n \"biblatex\": \"ukenglish\"\n },\n \"usenglish\": {\n \"csl\": \"en-US\",\n \"biblatex\": \"usenglish\"\n },\n \"estonian\": {\n \"csl\": \"et-EE\",\n \"biblatex\": \"estonian\"\n },\n \"finnish\": {\n \"csl\": \"fi-FI\",\n \"biblatex\": \"finnish\"\n },\n \"french\": {\n \"csl\": \"fr-FR\",\n \"biblatex\": \"french\"\n },\n \"cafrench\": {\n \"csl\": \"fr-CA\",\n \"biblatex\": \"canadien\"\n },\n \"german\": {\n \"csl\": \"de-DE\",\n \"biblatex\": \"ngerman\"\n },\n \"atgerman\": {\n \"csl\": \"de-AT\",\n \"biblatex\": \"naustrian\"\n },\n \"greek\": {\n \"csl\": \"el-GR\",\n \"biblatex\": \"greek\"\n },\n \"hebrew\": {\n \"csl\": \"he-IL\",\n \"biblatex\": \"hebrew\"\n },\n \"hungarian\": {\n \"csl\": \"hu-HU\",\n \"biblatex\": \"hungarian\"\n },\n \"icelandic\": {\n \"csl\": \"is-IS\",\n \"biblatex\": \"icelandic\"\n },\n \"italian\": {\n \"csl\": \"it-IT\",\n \"biblatex\": \"italian\"\n },\n \"japanese\": {\n \"csl\": \"ja-JP\",\n \"biblatex\": \"japanese\"\n },\n \"latin\": {\n \"csl\": \"la\",\n \"biblatex\": \"latin\"\n },\n \"latvian\": {\n \"csl\": \"lv-LV\",\n \"biblatex\": \"latvian\"\n },\n \"lithuanian\": {\n \"csl\": \"lt-LT\",\n \"biblatex\": \"lithuanian\"\n },\n \"magyar\": {\n \"csl\": \"hu-HU\",\n \"biblatex\": \"magyar\"\n },\n \"mongolian\": {\n \"csl\": \"mn-MN\",\n \"biblatex\": \"mongolian\"\n },\n \"norwegian\": {\n \"csl\": \"nb-NO\",\n \"biblatex\": \"norsk\"\n },\n \"newnorwegian\": {\n \"csl\": \"nn-NO\",\n \"biblatex\": \"nynorsk\"\n },\n \"farsi\": {\n \"csl\": \"fa-IR\",\n \"biblatex\": \"farsi\"\n },\n \"polish\": {\n \"csl\": \"pl-PL\",\n \"biblatex\": \"polish\"\n },\n \"portuguese\": {\n \"csl\": \"pt-PT\",\n \"biblatex\": \"portuguese\"\n },\n \"brportuguese\": {\n \"csl\": \"pt-BR\",\n \"biblatex\": \"brazilian\"\n },\n \"romanian\": {\n \"csl\": \"ro-RO\",\n \"biblatex\": \"romanian\"\n },\n \"russian\": {\n \"csl\": \"ru-RU\",\n \"biblatex\": \"russian\"\n },\n \"serbian\": {\n \"csl\": \"sr-RS\",\n \"biblatex\": \"serbian\"\n },\n \"cyrillicserbian\": {\n \"csl\": \"sr-RS\",\n \"biblatex\": \"serbianc\"\n },\n \"slovak\": {\n \"csl\": \"sk-SK\",\n \"biblatex\": \"slovak\"\n },\n \"slovene\": {\n \"csl\": \"sl-SL\",\n \"biblatex\": \"slovene\"\n },\n \"spanish\": {\n \"csl\": \"es-ES\",\n \"biblatex\": \"spanish\"\n },\n \"swedish\": {\n \"csl\": \"sv-SE\",\n \"biblatex\": \"swedish\"\n },\n \"thai\": {\n \"csl\": \"th-TH\",\n \"biblatex\": \"thai\"\n },\n \"turkish\": {\n \"csl\": \"tr-TR\",\n \"biblatex\": \"turkish\"\n },\n \"ukrainian\": {\n \"csl\": \"uk-UA\",\n \"biblatex\": \"ukrainian\"\n },\n \"vietnamese\": {\n \"csl\": \"vi-VN\",\n \"biblatex\": \"vietnamese\"\n }\n}\n\nconst pubstateOptions = {\n \"inpreparation\": {\n \"csl\": \"in preparation\",\n \"biblatex\": \"inpreparation\"\n },\n \"submitted\": {\n \"csl\": \"submitted\",\n \"biblatex\": \"submitted\"\n },\n \"forthcoming\": {\n \"csl\": \"forthcoming\",\n \"biblatex\": \"forthcoming\"\n },\n \"inpress\": {\n \"csl\": \"in press\",\n \"biblatex\": \"inpress\"\n },\n \"prepublished\": {\n \"csl\": \"prepublished\",\n \"biblatex\": \"prepublished\"\n }\n}\n\nconst languageOptions = ['catalan', 'croatian', 'czech', 'danish',\n'dutch', 'english', 'american', 'finnish', 'french', 'german', 'greek',\n'italian', 'latin', 'norwegian', 'polish', 'portuguese', 'brazilian', 'russian',\n'slovene', 'spanish', 'swedish']\n\n\n/** A list of field types of Bibligraphy DB with lookup by field name. */\nconst BibFieldTypes = {\n 'abstract': {\n type: 'f_long_literal',\n biblatex: 'abstract',\n csl: 'abstract'\n },\n 'addendum': {\n type: 'f_literal',\n biblatex: 'addendum'\n },\n 'afterword': {\n type: 'l_name',\n biblatex: 'afterword'\n },\n 'annotation': {\n type: 'f_long_literal',\n biblatex: 'annotation'\n },\n 'annotator': {\n type: 'l_name',\n biblatex: 'annotator'\n },\n 'author': {\n type: 'l_name',\n biblatex: 'author',\n csl: 'author'\n },\n 'bookauthor': {\n type: 'l_name',\n biblatex: 'bookauthor',\n csl: 'container-author'\n },\n 'bookpagination': {\n type: 'f_key',\n biblatex: 'bookpagination',\n options: ['page', 'column', 'section', 'paragraph', 'verse', 'line']\n },\n 'booksubtitle': {\n type: 'f_title',\n biblatex: 'booksubtitle'\n },\n 'booktitle': {\n type: 'f_title',\n biblatex: 'booktitle',\n csl: 'container-title'\n },\n 'booktitleaddon': {\n type: 'f_title',\n biblatex: 'booktitleaddon'\n },\n 'chapter': {\n type: 'f_literal',\n biblatex: 'chapter',\n csl: 'chapter-number'\n },\n 'commentator': {\n type: 'l_name',\n biblatex: 'commentator'\n },\n 'date': {\n type: 'f_date',\n biblatex: 'date',\n csl: 'issued'\n },\n 'doi': {\n type: 'f_verbatim',\n biblatex: 'doi',\n csl: 'DOI'\n },\n 'edition': {\n type: 'f_integer',\n biblatex: 'edition',\n csl: 'edition'\n },\n 'editor': {\n type: 'l_name',\n biblatex: 'editor',\n csl: 'editor'\n },\n 'editora': {\n type: 'l_name',\n biblatex: 'editora'\n },\n 'editorb': {\n type: 'l_name',\n biblatex: 'editorb'\n },\n 'editorc': {\n type: 'l_name',\n biblatex: 'editorc'\n },\n 'editortype': {\n type: 'f_key',\n biblatex: 'editortype',\n options: ['editor', 'compiler', 'founder', 'continuator', 'redactor', 'reviser', 'collaborator']\n },\n 'editoratype': {\n type: 'f_key',\n biblatex: 'editoratype',\n options: ['editor', 'compiler', 'founder', 'continuator', 'redactor', 'reviser', 'collaborator']\n },\n 'editorbtype': {\n type: 'f_key',\n biblatex: 'editorbtype',\n options: ['editor', 'compiler', 'founder', 'continuator', 'redactor', 'reviser', 'collaborator']\n },\n 'editorctype': {\n type: 'f_key',\n biblatex: 'editorctype',\n options: ['editor', 'compiler', 'founder', 'continuator', 'redactor', 'reviser', 'collaborator']\n },\n 'eid': {\n type: 'f_literal',\n biblatex: 'eid'\n },\n 'entrysubtype': {\n type: 'f_literal',\n biblatex: 'entrysubtype'\n },\n 'eprint': {\n type: 'f_verbatim',\n biblatex: 'eprint'\n },\n 'eprintclass': {\n type: 'f_literal',\n biblatex: 'eprintclass'\n },\n 'eprinttype': {\n type: 'f_literal',\n biblatex: 'eprinttype'\n },\n 'eventdate': {\n type: 'f_date',\n biblatex: 'eventdate',\n csl: 'event-date'\n },\n 'eventtitle': {\n type: 'f_title',\n biblatex: 'eventtitle',\n csl: 'event'\n },\n 'file': {\n type: 'f_verbatim',\n biblatex: 'file'\n },\n 'foreword': {\n type: 'l_name',\n biblatex: 'foreword'\n },\n 'holder': {\n type: 'l_name',\n biblatex: 'holder'\n },\n 'howpublished': {\n type: 'f_literal',\n biblatex: 'howpublished',\n csl: 'medium'\n },\n 'indextitle': {\n type: 'f_literal',\n biblatex: 'indextitle'\n },\n 'institution': {\n type: 'l_literal',\n biblatex: 'institution'\n },\n 'introduction': {\n type: 'l_name',\n biblatex: 'introduction'\n },\n 'isan': {\n type: 'f_literal',\n biblatex: 'isan'\n },\n 'isbn': {\n type: 'f_literal',\n biblatex: 'isbn',\n csl: 'ISBN'\n },\n 'ismn': {\n type: 'f_literal',\n biblatex: 'ismn'\n },\n 'isrn': {\n type: 'f_literal',\n biblatex: 'isrn'\n },\n 'issn': {\n type: 'f_literal',\n biblatex: 'issn',\n csl: 'ISSN'\n },\n 'issue': {\n type: 'f_literal',\n biblatex: 'issue',\n csl: 'issue'\n },\n 'issuesubtitle': {\n type: 'f_literal',\n biblatex: 'issuesubtitle'\n },\n 'issuetitle': {\n type: 'f_literal',\n biblatex: 'issuetitle'\n },\n 'iswc': {\n type: 'f_literal',\n biblatex: 'iswc'\n },\n 'journalsubtitle': {\n type: 'f_literal',\n biblatex: 'journalsubtitle'\n },\n 'journaltitle': {\n type: 'f_literal',\n biblatex: 'journaltitle',\n csl: 'container-title'\n },\n 'keywords': {\n type: 'l_tag',\n biblatex: 'keywords'\n },\n 'label': {\n type: 'f_literal',\n biblatex: 'label'\n },\n 'language': {\n type: 'l_key',\n biblatex: 'language',\n options: languageOptions\n },\n 'langid': {\n type: 'f_key',\n strict: true, // Does not allow costum strings\n biblatex: 'langid',\n csl: 'language',\n options: langidOptions\n },\n 'library': {\n type: 'f_literal',\n biblatex: 'library'\n },\n 'location': {\n type: 'l_literal',\n biblatex: 'location',\n csl: 'publisher-place'\n },\n 'mainsubtitle': {\n type: 'f_title',\n biblatex: 'mainsubtitle'\n },\n 'maintitle': {\n type: 'f_title',\n biblatex: 'maintitle'\n },\n 'maintitleaddon': {\n type: 'f_title',\n biblatex: 'maintitleaddon'\n },\n 'nameaddon': {\n type: 'f_literal',\n biblatex: 'nameaddon'\n },\n 'note': {\n type: 'f_literal',\n biblatex: 'note',\n csl: 'note'\n },\n 'number': {\n type: 'f_literal',\n biblatex: 'number',\n csl: 'number'\n },\n 'organization': {\n type: 'l_literal',\n biblatex: 'organization'\n },\n 'origdate': {\n type: 'f_date',\n biblatex: 'origdate',\n csl: 'original-date'\n },\n 'origlanguage': {\n type: 'f_key',\n biblatex: 'origlanguage',\n options: languageOptions\n },\n 'origlocation': {\n type: 'l_literal',\n biblatex: 'origlocation',\n csl: 'original-publisher-place'\n },\n 'origpublisher': {\n type: 'l_literal',\n biblatex: 'origpublisher',\n csl: 'original-publisher'\n },\n 'origtitle': {\n type: 'f_title',\n biblatex: 'origtitle',\n csl: 'original-title'\n },\n 'pages': {\n type: 'l_range',\n biblatex: 'pages',\n csl: 'page'\n },\n 'pagetotal': {\n type: 'f_literal',\n biblatex: 'pagetotal',\n csl: 'number-of-pages'\n },\n 'pagination': {\n type: 'f_key',\n biblatex: 'pagination',\n options: ['page', 'column', 'section', 'paragraph', 'verse', 'line']\n },\n 'part': {\n type: 'f_literal',\n biblatex: 'part'\n },\n 'publisher': {\n type: 'l_literal',\n biblatex: 'publisher',\n csl: 'publisher'\n },\n 'pubstate': {\n type: 'f_key',\n biblatex: 'pubstate',\n csl: 'status',\n options: pubstateOptions\n },\n 'reprinttitle': {\n type: 'f_literal',\n biblatex: 'reprinttitle'\n },\n 'series': {\n type: 'f_literal',\n biblatex: 'series',\n csl: 'collection-title'\n },\n 'shortauthor': {\n type: 'l_name',\n biblatex: 'shortauthor'\n },\n 'shorteditor': {\n type: 'l_name',\n biblatex: 'shorteditor'\n },\n 'shorthand': {\n type: 'f_literal',\n biblatex: 'shorthand'\n },\n 'shorthandintro': {\n type: 'f_literal',\n biblatex: 'shorthandintro'\n },\n 'shortjournal': {\n type: 'f_literal',\n biblatex: 'shortjournal',\n csl: 'container-title-short'\n },\n 'shortseries': {\n type: 'f_literal',\n biblatex: 'shortseries'\n },\n 'shorttitle': {\n type: 'f_literal',\n biblatex: 'shorttitle',\n csl: 'title-short'\n },\n 'subtitle': {\n type: 'f_title',\n biblatex: 'subtitle'\n },\n 'title': {\n type: 'f_title',\n biblatex: 'title',\n csl: 'title'\n },\n 'titleaddon': {\n type: 'f_title',\n biblatex: 'titleaddon'\n },\n 'translator': {\n type: 'l_name',\n biblatex: 'translator',\n csl: 'translator'\n },\n 'type': {\n type: 'f_key',\n biblatex: 'type',\n options: ['manual', 'patent', 'report', 'thesis', 'mathesis', 'phdthesis', 'candthesis', 'techreport', 'resreport', 'software', 'datacd', 'audiocd']\n },\n 'url': {\n type: 'f_uri',\n biblatex: 'url',\n csl: 'URL'\n },\n 'urldate': {\n type: 'f_date',\n biblatex: 'urldate',\n csl: 'accessed'\n },\n 'venue': {\n type: 'f_literal',\n biblatex: 'venue',\n csl: 'event-place'\n },\n 'version': {\n type: 'f_literal',\n biblatex: 'version',\n csl: 'version'\n },\n 'volume': {\n type: 'f_literal',\n biblatex: 'volume',\n csl: 'volume'\n },\n 'volumes': {\n type: 'f_literal',\n biblatex: 'volumes',\n csl: 'number-of-volumes'\n }\n}\n\n/** A list of all bib types and their fields. */\nconst BibTypes = {\n \"article\": {\n \"order\": 1,\n \"biblatex\": \"article\",\n \"csl\": \"article\",\n \"required\": [\"journaltitle\", \"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"annotator\", \"commentator\", \"doi\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eid\", \"eprint\", \"eprintclass\", \"eprinttype\", \"issn\", \"issue\", \"issuesubtitle\", \"issuetitle\", \"journalsubtitle\", \"language\", \"langid\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"version\", \"volume\", \"annotation\", \"keywords\"]\n },\n \"article-magazine\": {\n \"order\": 2,\n \"biblatex\": \"article\",\n \"csl\": \"article-magazine\",\n \"required\": [\"journaltitle\", \"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"annotator\", \"commentator\", \"doi\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eid\", \"eprint\", \"eprintclass\", \"eprinttype\", \"issn\", \"issue\", \"issuesubtitle\", \"issuetitle\", \"journalsubtitle\", \"language\", \"langid\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"version\", \"volume\", \"annotation\", \"keywords\"]\n },\n \"article-newspaper\": {\n \"order\": 3,\n \"biblatex\": \"article\",\n \"csl\": \"article-newspaper\",\n \"required\": [\"journaltitle\", \"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"annotator\", \"commentator\", \"doi\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eid\", \"eprint\", \"eprintclass\", \"eprinttype\", \"issn\", \"issue\", \"issuesubtitle\", \"issuetitle\", \"journalsubtitle\", \"language\", \"langid\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"version\", \"volume\", \"annotation\", \"keywords\"]\n },\n \"article-journal\": {\n \"order\": 4,\n \"biblatex\": \"article\",\n \"csl\": \"article-journal\",\n \"required\": [\"journaltitle\", \"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"annotator\", \"commentator\", \"doi\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eid\", \"eprint\", \"eprintclass\", \"eprinttype\", \"issn\", \"issue\", \"issuesubtitle\", \"issuetitle\", \"journalsubtitle\", \"language\", \"langid\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"version\", \"volume\", \"annotation\", \"keywords\"]\n },\n \"post-weblog\": {\n \"order\": 5,\n \"biblatex\": \"online\",\n \"csl\": \"post-weblog\",\n \"required\": [\"date\", \"title\", \"url\"],\n \"eitheror\": [\"editor\", \"author\"],\n \"optional\": [\"abstract\", \"addendum\", \"pubstate\", \"subtitle\", \"language\", \"langid\", \"urldate\", \"titleaddon\", \"version\", \"note\", \"organization\", \"annotation\", \"keywords\"]\n },\n \"book\": {\n \"order\": 10,\n \"biblatex\": \"book\",\n \"csl\": \"book\",\n \"required\": [\"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"mvbook\": {\n \"order\": 11,\n \"biblatex\": \"mvbook\",\n \"csl\": \"book\",\n \"required\": [\"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"commentator\", \"doi\", \"edition\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"note\", \"number\", \"origlanguage\", \"pagetotal\", \"bookpagination\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"inbook\": {\n \"order\": 12,\n \"biblatex\": \"inbook\",\n \"csl\": \"chapter\",\n \"required\": [\"title\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"bookauthor\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"bookinbook\": {\n \"order\": 13,\n \"biblatex\": \"bookinbook\",\n \"csl\": \"chapter\",\n \"required\": [\"title\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"bookauthor\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"suppbook\": {\n \"order\": 14,\n \"biblatex\": \"suppbook\",\n \"csl\": \"chapter\",\n \"required\": [\"title\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"bookauthor\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"booklet\": {\n \"order\": 15,\n \"biblatex\": \"booklet\",\n \"csl\": \"pamphlet\",\n \"required\": [\"title\", \"date\"],\n \"eitheror\": [\"editor\", \"author\"],\n \"optional\": [\"abstract\", \"titleaddon\", \"addendum\", \"pages\", \"pagination\", \"howpublished\", \"type\", \"pubstate\", \"chapter\", \"doi\", \"subtitle\", \"language\", \"langid\", \"location\", \"url\", \"urldate\", \"pagetotal\", \"bookpagination\", \"note\", \"eprint\", \"eprintclass\", \"eprinttype\", \"annotation\", \"keywords\"]\n },\n \"collection\": {\n \"order\": 20,\n \"biblatex\": \"collection\",\n \"csl\": \"dataset\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"mvcollection\": {\n \"order\": 21,\n \"biblatex\": \"mvcollection\",\n \"csl\": \"dataset\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"note\", \"number\", \"origlanguage\", \"pagetotal\", \"bookpagination\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"incollection\": {\n \"order\": 22,\n \"biblatex\": \"incollection\",\n \"csl\": \"entry\",\n \"required\": [\"title\", \"editor\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"suppcollection\": {\n \"order\": 23,\n \"biblatex\": \"suppcollection\",\n \"csl\": \"entry\",\n \"required\": [\"title\", \"editor\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"post\": {\n \"order\": 30,\n \"biblatex\": \"online\",\n \"csl\": \"post\",\n \"required\": [\"date\", \"title\", \"url\"],\n \"eitheror\": [\"editor\", \"author\"],\n \"optional\": [\"abstract\", \"addendum\", \"pubstate\", \"subtitle\", \"language\", \"langid\", \"urldate\", \"titleaddon\", \"version\", \"note\", \"organization\", \"annotation\", \"keywords\"]\n },\n \"manual\": {\n \"order\": 40,\n \"biblatex\": \"manual\",\n \"csl\": \"book\",\n \"required\": [\"title\", \"date\"],\n \"eitheror\": [\"editor\", \"author\"],\n \"optional\": [\"abstract\", \"addendum\", \"chapter\", \"doi\", \"edition\", \"eprint\", \"eprintclass\", \"eprinttype\", \"isbn\", \"language\", \"langid\", \"location\", \"note\", \"number\", \"organization\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"type\", \"url\", \"urldate\", \"version\", \"annotation\", \"keywords\"]\n },\n \"misc\": {\n \"order\": 41,\n \"biblatex\": \"misc\",\n \"csl\": \"entry\",\n \"required\": [\"title\", \"date\"],\n \"eitheror\": [\"editor\", \"author\"],\n \"optional\": [\"abstract\", \"addendum\", \"howpublished\", \"type\", \"pubstate\", \"organization\", \"doi\", \"subtitle\", \"language\", \"langid\", \"location\", \"url\", \"urldate\", \"titleaddon\", \"version\", \"note\", \"eprint\", \"eprintclass\", \"eprinttype\", \"annotation\", \"keywords\"]\n },\n \"online\": {\n \"order\": 42,\n \"biblatex\": \"online\",\n \"csl\": \"webpage\",\n \"required\": [\"date\", \"title\", \"url\"],\n \"eitheror\": [\"editor\", \"author\"],\n \"optional\": [\"abstract\", \"addendum\", \"pubstate\", \"subtitle\", \"language\", \"langid\", \"urldate\", \"titleaddon\", \"version\", \"note\", \"organization\", \"annotation\", \"keywords\"]\n },\n \"patent\": {\n \"order\": 43,\n \"biblatex\": \"patent\",\n \"csl\": \"patent\",\n \"required\": [\"title\", \"number\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"holder\", \"location\", \"pubstate\", \"doi\", \"subtitle\", \"titleaddon\", \"type\", \"url\", \"urldate\", \"version\", \"note\", \"eprint\", \"eprintclass\", \"eprinttype\", \"annotation\", \"keywords\"]\n },\n \"periodical\": {\n \"order\": 50,\n \"biblatex\": \"periodical\",\n \"csl\": \"book\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"volume\", \"pubstate\", \"number\", \"series\", \"issn\", \"issue\", \"issuesubtitle\", \"issuetitle\", \"doi\", \"subtitle\", \"editora\", \"editorb\", \"editorc\", \"url\", \"urldate\", \"language\", \"langid\", \"note\", \"eprint\", \"eprintclass\", \"eprinttype\", \"annotation\", \"keywords\"]\n },\n \"suppperiodical\": {\n \"order\": 51,\n \"biblatex\": \"suppperiodical\",\n \"csl\": \"entry\",\n \"required\": [\"journaltitle\", \"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"annotator\", \"commentator\", \"doi\", \"editor\", \"editora\", \"editorb\", \"editorc\", \"eid\", \"eprint\", \"eprintclass\", \"eprinttype\", \"issn\", \"issue\", \"issuesubtitle\", \"issuetitle\", \"journalsubtitle\", \"language\", \"langid\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"version\", \"volume\", \"annotation\", \"keywords\"]\n },\n \"proceedings\": {\n \"order\": 60,\n \"biblatex\": \"proceedings\",\n \"csl\": \"entry\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"chapter\", \"doi\", \"eprint\", \"eprintclass\", \"eprinttype\", \"eventdate\", \"eventtitle\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"organization\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"url\", \"urldate\", \"venue\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"mvproceedings\": {\n \"order\": 61,\n \"biblatex\": \"mvproceedings\",\n \"csl\": \"entry\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"doi\", \"eprint\", \"eprintclass\", \"eprinttype\", \"eventdate\", \"eventtitle\", \"isbn\", \"language\", \"langid\", \"location\", \"note\", \"number\", \"organization\", \"pagetotal\", \"bookpagination\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"url\", \"urldate\", \"venue\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"inproceedings\": {\n \"order\": 62,\n \"biblatex\": \"inproceedings\",\n \"csl\": \"paper-conference\",\n \"required\": [\"title\", \"editor\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"doi\", \"eprint\", \"eprintclass\", \"eprinttype\", \"eventdate\", \"eventtitle\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"organization\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"url\", \"urldate\", \"venue\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"reference\": {\n \"order\": 70,\n \"biblatex\": \"book\",\n \"csl\": \"reference\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"mvreference\": {\n \"order\": 71,\n \"biblatex\": \"mvreference\",\n \"csl\": \"book\",\n \"required\": [\"editor\", \"title\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"note\", \"number\", \"origlanguage\", \"pagetotal\", \"bookpagination\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"inreference\": {\n \"order\": 72,\n \"biblatex\": \"inreference\",\n \"csl\": \"entry\",\n \"required\": [\"title\", \"editor\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"entry-encyclopedia\": {\n \"order\": 73,\n \"biblatex\": \"inreference\",\n \"csl\": \"entry-encyclopedia\",\n \"required\": [\"title\", \"editor\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"entry-dictionary\": {\n \"order\": 74,\n \"biblatex\": \"inreference\",\n \"csl\": \"entry-dictionary\",\n \"required\": [\"title\", \"editor\", \"booktitle\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"afterword\", \"annotator\", \"booksubtitle\", \"booktitleaddon\", \"chapter\", \"commentator\", \"doi\", \"edition\", \"editora\", \"editorb\", \"editorc\", \"eprint\", \"eprintclass\", \"eprinttype\", \"foreword\", \"introduction\", \"isbn\", \"language\", \"langid\", \"location\", \"mainsubtitle\", \"maintitle\", \"maintitleaddon\", \"note\", \"number\", \"origlanguage\", \"pages\", \"pagination\", \"part\", \"publisher\", \"pubstate\", \"series\", \"subtitle\", \"titleaddon\", \"translator\", \"url\", \"urldate\", \"volume\", \"volumes\", \"annotation\", \"keywords\"]\n },\n \"report\": {\n \"order\": 80,\n \"biblatex\": \"report\",\n \"csl\": \"report\",\n \"required\": [\"author\", \"title\", \"type\", \"institution\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"pubstate\", \"number\", \"isrn\", \"chapter\", \"doi\", \"subtitle\", \"language\", \"langid\", \"location\", \"url\", \"urldate\", \"titleaddon\", \"version\", \"note\", \"eprint\", \"eprintclass\", \"eprinttype\", \"annotation\", \"keywords\"]\n },\n \"thesis\": {\n \"order\": 81,\n \"biblatex\": \"thesis\",\n \"csl\": \"thesis\",\n \"required\": [\"author\", \"title\", \"type\", \"institution\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"pages\", \"pagination\", \"pagetotal\", \"bookpagination\", \"pubstate\", \"isbn\", \"chapter\", \"doi\", \"subtitle\", \"language\", \"langid\", \"location\", \"url\", \"urldate\", \"titleaddon\", \"note\", \"eprint\", \"eprintclass\", \"eprinttype\", \"annotation\", \"keywords\"]\n },\n \"unpublished\": {\n \"order\": 90,\n \"biblatex\": \"unpublished\",\n \"csl\": \"manuscript\",\n \"required\": [\"title\", \"author\", \"date\"],\n \"eitheror\": [],\n \"optional\": [\"abstract\", \"addendum\", \"howpublished\", \"pubstate\", \"isbn\", \"date\", \"subtitle\", \"language\", \"langid\", \"location\", \"url\", \"urldate\", \"titleaddon\", \"note\", \"annotation\", \"keywords\"]\n }\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/edtf-parser.js\":\n/*!*****************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/edtf-parser.js ***!\n \\*****************************************************************/\n/*! exports provided: edtfParse */\n/*! exports used: edtfParse */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return edtfParse; });\n// @flow\n\n// Class to do a simple check for level 0 and 1 while waiting for a compatible\n// edtf.js version and figuring out if the license is OK.\n// It has an interface that is similar to the part of edtf.js we use so that we\n// can quickly switch back.\n\n// Notice: this allows open ended date ranges and it uses 1-12 rather than 0-11 for months.\n\n/*::\n\ntype SimpleDateArray = Array<string | number>;\n\ntype DateArray = $ReadOnlyArray<string | number | SimpleDateArray>;\n\ntype EDTFOutputObject = {\n type: string;\n valid: boolean;\n values: DateArray;\n cleanedString: string;\n uncertain: boolean;\n approximate: boolean;\n}\n\n*/\n\nclass SimpleEDTFParser {\n /*::\n string: string;\n type: string;\n valid: boolean;\n values: SimpleDateArray;\n uncertain: boolean;\n approximate: boolean;\n parts: Array<SimpleEDTFParser>;\n */\n\n constructor(string /*: string */) {\n this.string = string\n this.type = 'None' // default\n this.valid = true // default\n this.values = []\n this.uncertain = false\n this.approximate = false\n this.parts = []\n }\n\n init() /*: EDTFOutputObject */ {\n this.checkCertainty()\n this.splitInterval()\n return {\n type: this.type,\n valid: this.valid,\n values: this.type === 'Interval' ? this.getPartValues() : this.values,\n cleanedString: this.cleanString(),\n uncertain: this.uncertain,\n approximate: this.approximate\n }\n }\n\n getPartValues() /*: DateArray */ {\n if (this.parts.length===0) {\n const emptyPart = []\n return emptyPart\n } else if (this.parts.length===1) {\n const datePart = this.parts[0].values\n return datePart\n } else {\n const datePartInterval = [\n this.parts[0].values,\n this.parts[1].values\n ]\n return datePartInterval\n }\n }\n\n cleanString() /*: string */ {\n let cleanedString = ''\n if (this.parts.length) {\n cleanedString = this.parts.map(datePart => datePart.cleanString()).join('/')\n } else if (this.values) {\n cleanedString = this.values.reduce((dateString, value, index) => {\n if (index === 0) {\n if (typeof value === 'number' && value > 0) {\n return String(value).padStart(4, '0')\n } else {\n return String(value)\n }\n } else if (index < 3) {\n return `${dateString}-${String(value).padStart(2, '0')}`\n } else if (index===3) {\n return `${dateString}T${String(value).padStart(2, '0')}`\n } else if (index < 6){\n return `${dateString}:${String(value).padStart(2, '0')}`\n } else {\n return `${dateString}${value}`\n }\n }, '')\n }\n if (this.uncertain) {\n cleanedString += '?'\n }\n if (this.approximate) {\n cleanedString += '~'\n }\n return cleanedString\n }\n\n checkCertainty() {\n if (this.string.slice(-1)==='~') {\n this.approximate = true\n this.string = this.string.slice(0, -1)\n }\n if (this.string.slice(-1)==='?') {\n this.uncertain = true\n this.string = this.string.slice(0, -1)\n }\n }\n\n splitInterval() {\n let parts = this.string.split('/')\n if (parts.length > 2) {\n this.valid = false\n } else if (parts.length === 2) {\n this.type = 'Interval'\n let valid = false\n parts.forEach(part => {\n let parser = new SimpleEDTFParser(part)\n parser.init()\n if (parser.valid || parser.type==='Open') {\n this.parts.push(parser)\n if (parser.valid) {\n valid = true\n }\n } else {\n this.valid = false\n }\n })\n if (!valid) {\n // From open to open is invalid\n this.valid = false\n }\n } else {\n this.splitDateParts()\n }\n\n }\n\n splitDateParts() {\n if (['','..'].includes(this.string)) {\n // Empty string. Invalid by itself but could be valied as part of a range\n this.valid = false\n this.values = []\n this.type = 'Open'\n return\n }\n\n let parts = this.string.replace(/^y/, '').split(/(?!^)-/)\n\n if (parts.length > 3) {\n this.valid = false\n return\n }\n let certain = true\n let year = parts[0]\n\n let yearChecker = /^-?[0-9]*u{0,2}$/ // 1994, 19uu, -234, 187u, 0, 1984?~, etc.\n if (!yearChecker.test(year)) {\n this.valid = false\n return\n }\n if (year.slice(-1) === 'u') {\n certain = false\n this.type = 'Interval'\n let from = new SimpleEDTFParser(year.replace(/u/g,'0'))\n from.init()\n let to = new SimpleEDTFParser(year.replace(/u/g,'9'))\n to.init()\n this.parts = [from, to]\n if (!from.valid || !to.valid) {\n this.valid = false\n }\n } else {\n this.values = [parseInt(year)]\n this.type = 'Date'\n }\n\n if (parts.length < 2) {\n return\n }\n\n // Month / Season\n\n let month = parts[1]\n if (!certain && month !== 'uu') {\n // End of year uncertain but month specified. Invalid\n this.valid = false\n return\n }\n let monthChecker = /^[0-2][0-9]|uu$/ // uu or 01, 02, 03, ..., 11, 12\n let monthInt = parseInt(month.replace('uu','01'))\n if(\n !monthChecker.test(month) ||\n monthInt < 1 ||\n (monthInt > 12 && monthInt < 21) ||\n monthInt > 24\n ) {\n this.valid = false\n return\n }\n if (month === 'uu') {\n certain = false\n }\n\n if (certain) {\n this.values.push(monthInt)\n }\n\n if (parts.length < 3) {\n if (monthInt > 12) {\n this.type = 'Season'\n }\n return\n }\n if (monthInt > 12) {\n // Season + day - invalid\n this.valid = false\n return\n }\n\n // Day\n\n let dayTime = parts[2].split('T'), day = dayTime[0]\n if (!certain && day !== 'uu') {\n // Month uncertain but day specified. Invalid\n this.valid = false\n return\n }\n let dayChecker = /^[0-3][0-9]$|uu/ // uu or 01, 02, 03, ..., 11, 12\n let dayInt = parseInt(day.replace('uu','01'))\n if(\n !dayChecker.test(month) ||\n dayInt < 1 ||\n dayInt > 31\n ) {\n this.valid = false\n return\n }\n if (day === 'uu') {\n certain = false\n }\n\n if (certain) {\n\n let testDate = new Date(`${year}/${month}/${day}`)\n\n if (\n testDate.getFullYear() !== parseInt(year) ||\n testDate.getMonth() + 1 !== monthInt ||\n testDate.getDate() !== dayInt\n ) {\n this.valid = false\n return\n }\n\n this.values.push(dayInt)\n }\n\n if (dayTime.length < 2) {\n return\n }\n\n // Time\n\n if (!certain) {\n // Day uncertain but time specified\n this.valid = false\n return\n }\n\n let timeParts = dayTime[1].slice(0, 8).split(':').map(part => parseInt(part))\n\n if (\n timeParts.length !== 3 ||\n timeParts[0] < 0 ||\n timeParts[0] > 23 ||\n timeParts[1] < 0 ||\n timeParts[1] > 59 ||\n timeParts[2] < 0 ||\n timeParts[2] > 59\n ) {\n // Invalid time\n this.valid = false\n return\n }\n\n this.values = this.values.concat(timeParts)\n\n if (dayTime[1].length === 8) {\n // No timezone\n return\n }\n let timeZone = dayTime[1].slice(8)\n\n if (timeZone === 'Z') {\n // Zulu\n this.values.push('Z')\n return\n }\n\n let tzChecker = RegExp('^[+-][0-1][0-9]:[0-1][0-9]$'),\n tzParts = timeZone.split(':').map(part => parseInt(part))\n\n if (\n !tzChecker.test(timeZone) ||\n tzParts[0] < -11 ||\n tzParts[0] > 14 ||\n tzParts[1] < 0 ||\n tzParts[1] > 59\n ) {\n this.valid = false\n return\n } else {\n this.values.push(timeZone)\n }\n return\n\n }\n\n}\n\n\nfunction edtfParse(dateString /*: string */) {\n\n let parser = new SimpleEDTFParser(dateString)\n return parser.init()\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/import/biblatex.js\":\n/*!*********************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/import/biblatex.js ***!\n \\*********************************************************************/\n/*! exports provided: BibLatexParser, parse */\n/*! all exports used */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BibLatexParser\", function() { return BibLatexParser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return parse; });\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../const */ \"../node_modules/biblatex-csl-converter/src/const.js\");\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./const */ \"../node_modules/biblatex-csl-converter/src/import/const.js\");\n/* harmony import */ var _name_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./name-parser */ \"../node_modules/biblatex-csl-converter/src/import/name-parser.js\");\n/* harmony import */ var _literal_parser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./literal-parser */ \"../node_modules/biblatex-csl-converter/src/import/literal-parser.js\");\n/* harmony import */ var _group_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./group-parser */ \"../node_modules/biblatex-csl-converter/src/import/group-parser.js\");\n/* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tools */ \"../node_modules/biblatex-csl-converter/src/import/tools.js\");\n/* harmony import */ var _edtf_parser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../edtf-parser */ \"../node_modules/biblatex-csl-converter/src/edtf-parser.js\");\n// @flow\n\n\n\n\n\n\n\n\n/** Parses files in BibTeX/BibLaTeX format\n */\n\n /* Based on original work by Henrik Muehe (c) 2010,\n * licensed under the MIT license,\n * https://code.google.com/archive/p/bibtex-js/\n */\n\n /* Config options (default value for every option is false)\n\n - processUnexpected (false/true):\n\n Processes fields with names that are known, but are not expected for the given bibtype,\n adding them to an `unexpected_fields` object to each entry.\n\n - processUnknown (false/true/object [specifying content type for specific unknown]):\n\n Processes fields with names that are unknown, adding them to an `unknown_fields`\n object to each entry.\n\n example:\n > a = new BibLatexParser(..., {processUnknown: true})\n > a.output\n {\n \"0:\": {\n ...\n unknown_fields: {\n ...\n }\n }\n }\n\n > a = new BibLatexParser(..., {processUnknown: {commentator: 'l_name'}})\n > a.output\n {\n \"0:\": {\n ...\n unknown_fields: {\n commentator: [\n {\n given: ...,\n family: ...\n }\n ]\n ...\n }\n }\n }\n */\n\n/*::\nimport type {GroupObject, NodeObject, NodeArray, EntryObject, NameDictObject, RangeArray} from \"../const\"\n\ntype ConfigObject = {\n processUnknown?: Object;\n processUnexpected?: boolean;\n processInvalidURIs?: boolean;\n processComments?: boolean;\n async?: boolean;\n};\n\ntype ErrorObject = {\n type: string;\n expected?: string;\n found?: string;\n line?: number;\n key?: string;\n entry?: string;\n field_name?: string;\n value?: Array<string> | string;\n}\n\ntype MatchOptionsObject = {\n skipWhitespace : string | boolean;\n};\n\ntype UnknownFieldsObject = {\n groups?: Array<NodeObject>;\n [string]: Array<NodeObject> | Array<RangeArray> | Array<NodeArray> | Array<NodeArray | string> | Array<NameDictObject> | string;\n}\n\n*/\n\nconst hasbackslash = /\\\\/\n\nclass BibLatexParser {\n /*::\n input: string;\n config: ConfigObject;\n pos: number;\n entries: Array<EntryObject>;\n currentKey: string | false;\n currentEntry: ?EntryObject;\n currentType: string;\n currentRawFields: Object;\n bibDB: Object;\n errors: Array<ErrorObject>;\n warnings: Array<ErrorObject>;\n months: {\n JAN: string,\n FEB: string,\n MAR: string,\n APR: string,\n MAY: string,\n JUN: string,\n JUL: string,\n AUG: string,\n SEP: string,\n OCT: string,\n NOV: string,\n DEC: string\n };\n strings: Object;\n comments: Array<string>;\n groupParser: GroupParser;\n groups: Array<GroupObject> | false;\n jabrefMeta: Object\n jabref: {\n groups: Array<GroupObject> | false;\n meta: Object\n }\n */\n\n\n constructor(input /*: string */, config /*: ConfigObject */ = {}) {\n this.input = input\n this.config = config\n this.pos = 0\n this.entries = []\n this.bibDB = {}\n this.currentKey = false\n this.currentEntry = null\n this.currentType = \"\"\n this.errors = []\n this.warnings = []\n this.comments = []\n this.strings = {}\n // These variables are expected to be defined by some bibtex sources.\n this.months = {\n JAN: \"01\",\n FEB: \"02\",\n MAR: \"03\",\n APR: \"04\",\n MAY: \"05\",\n JUN: \"06\",\n JUL: \"07\",\n AUG: \"08\",\n SEP: \"09\",\n OCT: \"10\",\n NOV: \"11\",\n DEC: \"12\"\n }\n this.groupParser = new _group_parser__WEBPACK_IMPORTED_MODULE_4__[/* GroupParser */ \"a\"](this.entries)\n this.groups = false\n this.jabrefMeta = {}\n }\n\n isWhitespace(s /*: string */) {\n return (s == ' ' || s == '\\r' || s == '\\t' || s == '\\n')\n }\n\n error(data /*: ErrorObject */) {\n this.errors.push(Object.assign({}, data, {line: this.input.slice(0, this.pos).split('\\n').length }))\n }\n\n warning(data /*: ErrorObject */) {\n this.warnings.push(Object.assign({}, data, {line: this.input.slice(0, this.pos).split('\\n').length }))\n }\n\n\n match(s /*: string */, options /*: MatchOptionsObject */ = { skipWhitespace: true }) {\n if (options.skipWhitespace === true || options.skipWhitespace === 'leading') {\n this.skipWhitespace()\n }\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n this.pos += s.length\n } else {\n this.error({\n type: 'token_mismatch',\n expected: s,\n found: this.input.substring(this.pos, this.pos + s.length),\n })\n }\n if (options.skipWhitespace === true || options.skipWhitespace === 'trailing') this.skipWhitespace()\n }\n\n tryMatch(s /*: string */) {\n this.skipWhitespace()\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n return true\n } else {\n return false\n }\n }\n\n skipWhitespace() {\n while (this.isWhitespace(this.input[this.pos])) {\n this.pos++\n }\n if (this.input[this.pos] == \"%\") {\n while (this.input[this.pos] != \"\\n\") {\n this.pos++\n }\n this.skipWhitespace()\n }\n }\n\n skipToNext() {\n while ((this.input.length > this.pos) && (this.input[this.pos] != \"@\")) {\n this.pos++\n }\n if (this.input.length == this.pos) {\n return false\n } else {\n return true\n }\n }\n\n valueBraces() {\n let bracecount = 0\n this.match(\"{\", { skipWhitespace: 'leading' })\n let string = \"\"\n while (this.pos < this.input.length) {\n switch(this.input[this.pos]) {\n case '\\\\':\n string += this.input.substring(this.pos, this.pos+2)\n this.pos++\n break\n case '}':\n if (bracecount === 0) {\n this.match(\"}\")\n return string\n }\n string += '}'\n bracecount--\n break\n case '{':\n string += '{'\n bracecount++\n break\n default:\n string += this.input[this.pos]\n break\n }\n this.pos++\n }\n this.errors.push({type: 'unexpected_eof'})\n return string\n }\n\n valueQuotes() {\n this.match('\"', { skipWhitespace: 'leading' })\n let string = \"\"\n while (this.pos < this.input.length) {\n switch(this.input[this.pos]) {\n case '\\\\':\n string += this.input.substring(this.pos, this.pos+2)\n this.pos++\n break\n case '\"':\n this.match('\"')\n return string\n default:\n string += this.input[this.pos]\n break\n }\n this.pos++\n }\n this.errors.push({type: 'unexpected_eof'})\n return string\n }\n\n singleValue() {\n if (this.tryMatch(\"{\")) {\n return this.valueBraces()\n } else if (this.tryMatch('\"')) {\n return this.valueQuotes()\n } else {\n let k = this.key()\n if (this.strings[k.toUpperCase()]) {\n return this.strings[k.toUpperCase()]\n } else if (this.months[k.toUpperCase()]) {\n return this.months[k.toUpperCase()]\n } else if (k.match(\"^[0-9]+$\")) {\n return k\n } else {\n const warning /*: Object */ = {\n type: 'undefined_variable',\n variable: k\n }\n if (this.currentEntry) {\n warning.entry = this.currentEntry['entry_key']\n }\n if (this.currentKey) {\n warning.key = this.currentKey\n }\n this.warning(warning)\n // Using \\u0870 as a delimiter for variables as they cannot be\n // used in regular latex code.\n return `\\u0870${k}\\u0870`\n }\n }\n }\n\n value(asis /*: boolean */ = false) {\n let values = []\n values.push(this.singleValue())\n while (this.tryMatch(\"#\")) {\n this.match(\"#\")\n values.push(this.singleValue())\n }\n values = values.join(\"\")\n if (!asis) values = values.replace(/[\\t ]+/g, ' ').trim()\n return values\n }\n\n key(optional /*: boolean */ = false) /*: string */ {\n let start = this.pos\n while (true) {\n if (this.pos == this.input.length) {\n this.error({type: 'runaway_key' })\n break\n }\n if (['(',')',',','{','}',' ','=', '\\t', '\\n'].includes(this.input[this.pos])) {\n let key = this.input.substring(start, this.pos)\n if (optional && this.input[this.pos] != ',') {\n this.skipWhitespace()\n if (this.input[this.pos] != ',') {\n this.pos = start\n return ''\n }\n }\n return key\n } else {\n this.pos++\n }\n }\n\n return ''\n }\n\n keyEqualsValue(asis /*: boolean */ = false) /*: [string, string] | false */{\n let key = this.key()\n if (!key.length) {\n const error /*: ErrorObject */ = {\n type: 'cut_off_citation',\n }\n if (this.currentEntry) {\n error.entry = this.currentEntry['entry_key']\n // The citation is not full, we remove the existing parts.\n this.currentEntry['incomplete'] = true\n }\n this.error(error)\n return false\n }\n this.currentKey = key.toLowerCase()\n if (this.tryMatch(\"=\")) {\n this.match(\"=\")\n const val = this.value(asis)\n if (this.currentKey) {\n return [this.currentKey, val]\n } else {\n return false\n }\n } else {\n const error /*: ErrorObject */ = {\n type: 'missing_equal_sign'\n }\n if (this.currentEntry) {\n error.entry = this.currentEntry['entry_key']\n }\n if (this.currentKey) {\n error.key = this.currentKey\n }\n this.error(error)\n }\n return false\n }\n\n keyValueList() {\n let kv = this.keyEqualsValue()\n if (!kv || !this.currentRawFields) {\n // Entry has no fields, so we delete it.\n // It was the last one pushed, so we remove the last one\n this.entries.pop()\n return\n }\n let rawFields = this.currentRawFields\n rawFields[kv[0]] = kv[1]\n while (this.tryMatch(\",\")) {\n this.match(\",\")\n //fixes problems with commas at the end of a list\n if (this.tryMatch(\"}\") || this.tryMatch(\")\")) {\n break\n }\n kv = this.keyEqualsValue()\n if (!kv) {\n const error /*: ErrorObject */ = {\n type: 'key_value_error'\n }\n if (this.currentEntry) {\n error.entry = this.currentEntry['entry_key']\n }\n this.error(error)\n break\n }\n rawFields[kv[0]] = kv[1]\n }\n }\n\n processFields() {\n if (!this.currentEntry) {\n return\n }\n let rawFields = this.currentRawFields\n let fields = this.currentEntry['fields']\n\n // date may come either as year, year + month or as date field.\n // We therefore need to catch these hear and transform it to the\n // date field after evaluating all the fields.\n // All other date fields only come in the form of a date string.\n\n let date, month\n if (rawFields.date) {\n // date string has precedence.\n date = rawFields.date\n } else if (rawFields.year && rawFields.month) {\n month = rawFields.month\n if (isNaN(parseInt(month)) && this.months[month.toUpperCase()]) {\n month = this.months[month.toUpperCase()]\n } else if (\n typeof month.split('~').find(monthPart => isNaN(parseInt(monthPart))) === 'undefined'\n ) {\n // handle cases like '09~26' but not '~09' (approximate month in edtf)\n month = month.replace(/~/g, '-')\n }\n date = `${rawFields.year}-${month}`\n } else if (rawFields.year) {\n date = `${rawFields.year}`\n }\n if (date) {\n let dateObj = Object(_edtf_parser__WEBPACK_IMPORTED_MODULE_6__[/* edtfParse */ \"a\"])(date)\n if (dateObj.valid) {\n fields['date'] = dateObj.cleanedString\n delete rawFields.year\n delete rawFields.month\n } else {\n let fieldName, value, errorList\n if (rawFields.date) {\n fieldName = 'date'\n value = rawFields.date\n errorList = this.errors\n } else if (rawFields.year && rawFields.month) {\n fieldName = 'year,month'\n value = [rawFields.year, rawFields.month]\n errorList = this.warnings\n } else {\n fieldName = 'year'\n value = rawFields.year\n errorList = this.warnings\n }\n const error /*: ErrorObject */ = {\n type: 'unknown_date',\n field_name: fieldName,\n value\n }\n if (this.currentEntry) {\n error.entry = this.currentEntry['entry_key']\n }\n errorList.push(error)\n }\n }\n // Check for English language. If the citation is in English language,\n // titles may use case preservation.\n let langEnglish = true // By default we assume everything to be written in English.\n if (rawFields.langid && rawFields.langid.length) {\n let langString = rawFields.langid.toLowerCase().trim()\n let englishOptions = ['english', 'american', 'british', 'usenglish', 'ukenglish', 'canadian', 'australian', 'newzealand']\n if (!englishOptions.some((option)=>{return langString === option})) {\n langEnglish = false\n }\n } else if (rawFields.language) {\n // langid and language. The two mean different things, see discussion https://forums.zotero.org/discussion/33960/biblatex-import-export-csl-language-biblatex-langid\n // but in bibtex, language is often used for what is essentially langid.\n // If there is no langid, but a language, and the language happens to be\n // a known langid, set the langid to be equal to the language.\n let langid = this._reformKey(rawFields.language, 'langid')\n if (langid.length) {\n fields['langid'] = langid\n if (!['usenglish', 'ukenglish', 'caenglish', 'auenglish', 'nzenglish'].includes(langid)) {\n langEnglish = false\n }\n }\n }\n\n iterateFields: for(let bKey /*: string */ in rawFields) {\n\n if (bKey==='date' || (['year','month'].includes(bKey) && !this.config.processUnknown)) {\n // Handled above\n continue iterateFields\n }\n\n // Replace alias fields with their main term.\n let aliasKey = _const__WEBPACK_IMPORTED_MODULE_1__[/* BiblatexFieldAliasTypes */ \"c\"][bKey], fKey = ''\n if (aliasKey) {\n if (rawFields[aliasKey]) {\n const warning /*: ErrorObject */ = {\n type: 'alias_creates_duplicate_field',\n field: bKey,\n alias_of: aliasKey,\n value: rawFields[bKey],\n alias_of_value: rawFields[aliasKey]\n }\n if (this.currentEntry) {\n warning.entry = this.currentEntry['entry_key']\n }\n this.warning(warning)\n continue iterateFields\n }\n\n fKey = Object.keys(_const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"]).find((ft)=>{\n return _const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"][ft].biblatex === aliasKey\n }) || ''\n } else {\n fKey = Object.keys(_const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"]).find((ft)=>{\n return _const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"][ft].biblatex === bKey\n }) || ''\n }\n\n let oFields, fType\n let bType = _const__WEBPACK_IMPORTED_MODULE_0__[/* BibTypes */ \"b\"][this.currentEntry['bib_type']]\n\n if(!fKey.length) {\n const warning /*: ErrorObject */ = {\n type: 'unknown_field',\n field_name: bKey\n }\n if (this.currentEntry) {\n warning.entry = this.currentEntry['entry_key']\n }\n this.warning(warning)\n if (!this.config.processUnknown) {\n continue iterateFields\n }\n if (this.currentEntry && !this.currentEntry['unknown_fields']) {\n this.currentEntry['unknown_fields'] = {}\n }\n oFields = this.currentEntry && this.currentEntry['unknown_fields'] ?\n this.currentEntry['unknown_fields'] :\n {}\n fType = this.config.processUnknown && this.config.processUnknown[bKey] ?\n this.config.processUnknown[bKey] :\n 'f_literal'\n fKey = bKey\n } else if (\n bType['required'].includes(fKey) ||\n bType['optional'].includes(fKey) ||\n bType['eitheror'].includes(fKey)\n ) {\n oFields = fields\n fType = _const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"][fKey]['type']\n } else {\n const warning /*: ErrorObject */ = {\n type: 'unexpected_field',\n field_name: bKey\n }\n if (this.currentEntry) {\n warning.entry = this.currentEntry['entry_key']\n }\n this.warning(warning)\n if (!this.config.processUnexpected) {\n continue iterateFields\n }\n if (this.currentEntry && !this.currentEntry['unexpected_fields']) {\n this.currentEntry['unexpected_fields'] = {}\n }\n oFields = this.currentEntry && this.currentEntry['unexpected_fields'] ?\n this.currentEntry['unexpected_fields'] :\n {}\n fType = _const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"][fKey]['type']\n }\n\n\n let fValue = rawFields[bKey],\n reformedValue\n switch(fType) {\n case 'f_date':\n reformedValue = Object(_edtf_parser__WEBPACK_IMPORTED_MODULE_6__[/* edtfParse */ \"a\"])(fValue)\n if (reformedValue.valid) {\n oFields[fKey] = reformedValue.cleanedString\n } else if (this.currentEntry) {\n this.error({\n type: 'unknown_date',\n entry: this.currentEntry['entry_key'],\n field_name: fKey,\n value: fValue,\n })\n }\n break\n case 'f_integer':\n oFields[fKey] = this._reformLiteral(fValue)\n break\n case 'f_key':\n reformedValue = this._reformKey(fValue, fKey)\n if (reformedValue.length) {\n oFields[fKey] = reformedValue\n }\n break\n case 'f_literal':\n case 'f_long_literal':\n oFields[fKey] = this._reformLiteral(fValue)\n break\n case 'l_range':\n oFields[fKey] = this._reformRange(fValue)\n break\n case 'f_title':\n oFields[fKey] = this._reformLiteral(fValue, langEnglish)\n break\n case 'f_uri':\n if (this.config.processInvalidURIs || this._checkURI(fValue)) {\n oFields[fKey] = this._reformURI(fValue)\n } else {\n const error /*: ErrorObject */ = {\n type: 'unknown_uri',\n field_name: fKey,\n value: fValue,\n }\n if (this.currentEntry) {\n error.entry = this.currentEntry['entry_key']\n }\n this.error(error)\n }\n break\n case 'f_verbatim':\n oFields[fKey] = fValue\n break\n case 'l_key':\n oFields[fKey] = Object(_tools__WEBPACK_IMPORTED_MODULE_5__[/* splitTeXString */ \"a\"])(fValue).map(\n keyField => this._reformKey(keyField, fKey)\n )\n break\n case 'l_tag':\n oFields[fKey] = fValue.split(/[,;]/).map(string => string.trim())\n break\n case 'l_literal':\n oFields[fKey] = Object(_tools__WEBPACK_IMPORTED_MODULE_5__[/* splitTeXString */ \"a\"])(fValue).map(item => this._reformLiteral(item.trim()))\n break\n case 'l_name':\n oFields[fKey] = this._reformNameList(fValue)\n break\n default:\n // Something must be wrong in the code.\n console.warn(`Unrecognized type: ${fType}!`)\n }\n }\n\n }\n\n _reformKey(keyString /*: string */, fKey /*: string */) /*: string | NodeArray */ {\n let keyValue = keyString.trim().toLowerCase()\n let fieldType = _const__WEBPACK_IMPORTED_MODULE_0__[/* BibFieldTypes */ \"a\"][fKey]\n if (_const__WEBPACK_IMPORTED_MODULE_1__[/* BiblatexAliasOptions */ \"a\"][fKey] && _const__WEBPACK_IMPORTED_MODULE_1__[/* BiblatexAliasOptions */ \"a\"][fKey][keyValue]) {\n keyValue = _const__WEBPACK_IMPORTED_MODULE_1__[/* BiblatexAliasOptions */ \"a\"][fKey][keyValue]\n }\n if (fieldType['options']) {\n if (Array.isArray(fieldType['options'])) {\n if (fieldType['options'].includes(keyValue)) {\n return keyValue\n }\n } else {\n let optionValue = Object.keys(fieldType['options']).find(key => {\n return fieldType['options'][key]['biblatex'] === keyValue\n })\n if (optionValue) {\n return optionValue\n } else {\n return ''\n }\n }\n }\n if (fieldType.strict) {\n const warning /*: ErrorObject */ = {\n type: 'unknown_key',\n field_name: fKey,\n value: keyString\n }\n if (this.currentEntry) {\n warning.entry = this.currentEntry['entry_key']\n }\n this.warning(warning)\n return ''\n }\n return this._reformLiteral(keyString)\n }\n\n _checkURI(uriString /*: string */) /*: boolean */ {\n /* Copyright (c) 2010-2013 Diego Perini, MIT licensed\n https://gist.github.com/dperini/729294\n */\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(uriString)\n }\n\n _reformURI(uriString /*: string */) {\n return uriString.replace(/\\\\/g,'')\n }\n\n _reformNameList(nameString /*: string */) /*: Array<NameDictObject> */ {\n const people = Object(_tools__WEBPACK_IMPORTED_MODULE_5__[/* splitTeXString */ \"a\"])(nameString),\n names = people.map(person => {\n const nameParser = new _name_parser__WEBPACK_IMPORTED_MODULE_2__[/* BibLatexNameParser */ \"a\"](person),\n name = nameParser.output\n if (name) {\n return name\n } else {\n return false\n }\n }),\n result = ((names.filter((name /*: NameDictObject | false */) => {\n return typeof name == 'object'\n }) /*: Array<any> */) /*: Array<NameDictObject> */)\n return result\n }\n\n _reformRange(rangeString /*: string */) /*: Array<RangeArray> */{\n return rangeString.split(',').map(string => {\n let parts = string.split('--')\n if (parts.length > 1) {\n return [\n this._reformLiteral(parts.shift().trim()),\n this._reformLiteral(parts.join('--').trim())\n ]\n } else {\n parts = string.split('-')\n if (parts.length > 1) {\n return [\n this._reformLiteral(parts.shift().trim()),\n this._reformLiteral(parts.join('-').trim())\n ]\n } else {\n return [this._reformLiteral(string.trim())]\n }\n }\n })\n }\n\n _reformLiteral(theValue /*: string */, cpMode /*: boolean */ = false) /*: NodeArray */ {\n const parser = new _literal_parser__WEBPACK_IMPORTED_MODULE_3__[/* BibLatexLiteralParser */ \"a\"](theValue, cpMode)\n return parser.output\n }\n\n bibType() /*: string */ {\n let biblatexType = this.currentType\n if (_const__WEBPACK_IMPORTED_MODULE_1__[/* BiblatexAliasTypes */ \"b\"][biblatexType]) {\n biblatexType = _const__WEBPACK_IMPORTED_MODULE_1__[/* BiblatexAliasTypes */ \"b\"][biblatexType]\n }\n\n let bibType = Object.keys(_const__WEBPACK_IMPORTED_MODULE_0__[/* BibTypes */ \"b\"]).find((bType) => {\n return _const__WEBPACK_IMPORTED_MODULE_0__[/* BibTypes */ \"b\"][bType]['biblatex'] === biblatexType\n })\n\n if(typeof bibType === 'undefined') {\n this.warning({\n type: 'unknown_type',\n type_name: biblatexType\n })\n bibType = 'misc'\n }\n\n return bibType\n }\n\n createNewEntry() {\n this.currentEntry = {\n 'bib_type': this.bibType(),\n 'entry_key': this.key(true),\n 'fields': {}\n }\n this.currentRawFields = {}\n this.entries.push(this.currentEntry)\n if (this.currentEntry && this.currentEntry['entry_key'].length) {\n this.match(\",\")\n }\n this.keyValueList()\n this.processFields()\n }\n\n directive() {\n this.match(\"@\")\n this.currentType = this.key()\n if (!this.currentType.length) return null\n this.currentType = this.currentType.toLowerCase()\n return \"@\" + this.currentType\n }\n\n string() {\n const kv = this.keyEqualsValue(true)\n if (kv) {\n this.strings[kv[0].toUpperCase()] = kv[1]\n }\n }\n\n preamble() {\n this.value()\n }\n\n replaceTeXChars() {\n let value = this.input\n let len = _const__WEBPACK_IMPORTED_MODULE_1__[/* TeXSpecialChars */ \"d\"].length\n for (let i = 0; i < len; i++) {\n if (!hasbackslash.test(value)) break\n let texChar = _const__WEBPACK_IMPORTED_MODULE_1__[/* TeXSpecialChars */ \"d\"][i]\n value = value.replace(texChar.tex, texChar.unicode)\n }\n // Delete multiple spaces\n this.input = value.replace(/ +(?= )/g, '')\n return\n }\n\n stepThroughBibtex() {\n while (this.skipToNext()) {\n this.parseNext()\n }\n }\n\n stepThroughBibtexAsync() {\n return this.skipToNext() ? (new Promise(resolve => resolve(this.parseNext()))).then(() => this.stepThroughBibtexAsync()) : Promise.resolve(null)\n }\n\n parseNext() {\n let closer\n let d = this.directive()\n if (!d) return\n\n if (this.tryMatch(\"{\")) {\n this.match(\"{\")\n closer = '}'\n } else if (this.tryMatch(\"(\")) { // apparently, references can also be surrended with round braces\n this.match(\"(\")\n closer = ')'\n } else if (d === \"@comment\") { // braceless comments are a thing it appears\n closer = null\n } else {\n this.match(\"{\")\n closer = '}'\n }\n\n if (d == \"@string\") {\n this.string()\n } else if (d == \"@preamble\") {\n this.preamble()\n } else if (d == \"@comment\") {\n this.parseComment(!closer)\n } else {\n this.createNewEntry()\n }\n\n if (closer) this.match(closer)\n }\n\n parseComment(braceless /*: boolean */) {\n let start = this.pos\n let braces = 1\n\n if (braceless) {\n while (this.input.length > this.pos && this.input[this.pos] != '\\n') {\n this.pos++\n }\n } else {\n while (this.input.length > this.pos && braces > 0) {\n switch (this.input[this.pos]) {\n case '{':\n braces += 1\n break\n case '}':\n braces -= 1\n }\n this.pos++\n }\n }\n\n // no ending brace found\n if (braceless || braces !== 0) { return }\n\n // leave the ending brace for the main parser to pick up\n this.pos--\n let comment = this.input.substring(start, this.pos)\n this.groupParser.checkString(comment)\n if (this.groupParser.groups.length) {\n this.groups = this.groupParser.groups\n } else {\n comment = comment.trim()\n const m = comment.match(/^jabref-meta: ([a-zA-Z]+):(.*);$/)\n if (m && m[1] !== 'groupsversion') {\n this.jabrefMeta[m[1]] = m[2].replace(/\\\\(.)/g, '$1')\n } else if (comment && this.config.processComments) {\n this.comments.push(comment)\n }\n }\n }\n\n createBibDB() {\n this.entries.forEach((entry, index)=> {\n // Start index from 1 to create less issues with testing\n this.bibDB[index + 1] = entry\n })\n }\n\n cleanDB() {\n this.bibDB = JSON.parse(\n JSON.stringify(this.bibDB)\n .replace(/\\u0871/,'\\\\\\\\') // Backslashes placed outside of literal fields\n .replace(/\\u0870/,'') // variable start/end outside of literal fields\n )\n }\n\n get output() {\n console.warn('BibLatexParser.output will be deprecated in biblatex-csl-converter 2.x. Use BibLatexParser.parse() instead.')\n this.replaceTeXChars()\n this.stepThroughBibtex()\n this.createBibDB()\n this.cleanDB()\n return this.bibDB\n }\n\n parsed() {\n this.createBibDB()\n this.cleanDB()\n return {\n entries: this.bibDB,\n errors: this.errors,\n warnings: this.warnings,\n comments: this.comments,\n strings: this.strings,\n jabref: {\n groups: this.groups,\n meta: this.jabrefMeta,\n },\n }\n }\n\n parse() {\n this.replaceTeXChars()\n\n if (this.config.async) {\n return this.stepThroughBibtexAsync().then(() => this.parsed())\n } else {\n this.stepThroughBibtex()\n return this.parsed()\n }\n }\n}\n\nfunction parse(input /*: string */, config /*: ConfigObject */ = {}) {\n return (new BibLatexParser(input, config)).parse()\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/import/const.js\":\n/*!******************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/import/const.js ***!\n \\******************************************************************/\n/*! exports provided: BiblatexFieldAliasTypes, BiblatexAliasTypes, BiblatexAliasOptions, TeXSpecialChars */\n/*! exports used: BiblatexAliasOptions, BiblatexAliasTypes, BiblatexFieldAliasTypes, TeXSpecialChars */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return BiblatexFieldAliasTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BiblatexAliasTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BiblatexAliasOptions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return TeXSpecialChars; });\n// @flow\n/** A list of all field aliases and what they refer to. */\nconst BiblatexFieldAliasTypes = {\n 'address': 'location',\n 'annote': 'annotation',\n 'archiveprefix': 'eprinttype',\n 'journal': 'journaltitle',\n 'pdf': 'file',\n 'primaryclass': 'eprintclass',\n 'school': 'institution'\n}\n\n/** A list of all bibentry aliases and what they refer to. */\nconst BiblatexAliasTypes = {\n 'conference': 'inproceedings',\n 'electronic': 'online',\n 'mastersthesis': 'thesis',\n 'phdthesis': 'thesis',\n 'techreport': 'report',\n 'www': 'online'\n}\n\nconst langidAliases = {\n 'english': 'usenglish',\n 'american': 'usenglish',\n 'en': 'usenglish',\n 'eng': 'usenglish',\n 'en-US': 'usenglish',\n 'anglais': 'usenglish',\n 'british': 'ukenglish',\n 'en-GB': 'ukenglish',\n 'francais': 'french',\n 'austrian': 'naustrian',\n 'german': 'ngerman',\n 'germanb': 'ngerman',\n 'polutonikogreek': 'greek',\n 'brazil': 'brazilian',\n 'portugues': 'portuguese',\n 'chinese': 'pinyin'\n}\n\nconst languageAliases = {\n \"langamerican\": \"american\",\n \"langbrazilian\": \"brazilian\",\n \"langcatalan\": \"catalan\",\n \"langcroation\": \"croation\",\n \"langczech\": \"czech\",\n \"langdanish\": \"danish\",\n \"langdutch\": \"dutch\",\n \"langenglish\": \"english\",\n \"langfinnish\": \"finnish\",\n \"langfrench\": \"french\",\n \"langgerman\": \"german\",\n \"langgreek\": \"greek\",\n \"langitalian\": \"italian\",\n \"langlatin\": \"latin\",\n \"langnorwegian\": \"norwegian\",\n \"langpolish\": \"polish\",\n \"langportuguese\": \"portuguese\",\n \"langrussian\": \"russian\",\n \"langslovene\": \"slovene\",\n \"langspanish\": \"spanish\",\n \"langswedish\": \"swedish\"\n}\n\n/** A list of aliases for options known by biblatex/babel/polyglosia and what they refer to. */\nconst BiblatexAliasOptions = {\n 'language': languageAliases,\n 'origlanguage': languageAliases,\n 'langid': langidAliases\n}\n\n\n/** A list of special chars in Tex and their unicode equivalent. */\n\n/* The copyright holder of the below composition is Emiliano Heyns, and it is made available under the MIT license.\n\nData sources for the composition are:\n\nhttp://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt\nhttp://www.w3.org/2003/entities/2007xml/unicode.xml\nhttp://www.w3.org/Math/characters/unicode.xml\n*/\nconst TeXSpecialChars /*: Array<{ tex: RegExp, unicode: string}> */ = [\n { tex: /\\\\\\^A|\\\\\\^\\{A\\}/, unicode: '\\xC2' },\n { tex: /\\\\\\^a|\\\\\\^\\{a\\}/, unicode: '\\xE2' },\n { tex: /\\\\\\^C|\\\\\\^\\{C\\}/, unicode: '\\u0108' },\n { tex: /\\\\\\^c|\\\\\\^\\{c\\}/, unicode: '\\u0109' },\n { tex: /\\\\\\^E|\\\\\\^\\{E\\}/, unicode: '\\xCA' },\n { tex: /\\\\\\^e|\\\\\\^\\{e\\}/, unicode: '\\xEA' },\n { tex: /\\\\\\^G|\\\\\\^\\{G\\}/, unicode: '\\u011C' },\n { tex: /\\\\\\^g|\\\\\\^\\{g\\}/, unicode: '\\u011D' },\n { tex: /\\\\\\^H|\\\\\\^\\{H\\}/, unicode: '\\u0124' },\n { tex: /\\\\\\^h|\\\\\\^\\{h\\}/, unicode: '\\u0125' },\n { tex: /\\\\\\^I|\\\\\\^\\{I\\}/, unicode: '\\xCE' },\n { tex: /\\\\\\^\\\\i|\\\\\\^\\{\\\\i\\}/, unicode: '\\xEE' },\n { tex: /\\\\\\^J|\\\\\\^\\{J\\}/, unicode: '\\u0134' },\n { tex: /\\\\\\^\\\\j|\\\\\\^\\{\\\\j\\}/, unicode: '\\u0135' },\n { tex: /\\\\\\^O|\\\\\\^\\{O\\}/, unicode: '\\xD4' },\n { tex: /\\\\\\^o|\\\\\\^\\{o\\}/, unicode: '\\xF4' },\n { tex: /\\\\\\^S|\\\\\\^\\{S\\}/, unicode: '\\u015C' },\n { tex: /\\\\\\^s|\\\\\\^\\{s\\}/, unicode: '\\u015D' },\n { tex: /\\\\\\^U|\\\\\\^\\{U\\}/, unicode: '\\xDB' },\n { tex: /\\\\\\^u|\\\\\\^\\{u\\}/, unicode: '\\xFB' },\n { tex: /\\\\\\^W|\\\\\\^\\{W\\}/, unicode: '\\u0174' },\n { tex: /\\\\\\^w|\\\\\\^\\{w\\}/, unicode: '\\u0175' },\n { tex: /\\\\\\^Y|\\\\\\^\\{Y\\}/, unicode: '\\u0176' },\n { tex: /\\\\\\^y|\\\\\\^\\{y\\}/, unicode: '\\u0177' },\n\n { tex: /\\\\\\.C|\\\\\\.\\{C\\}/, unicode: '\\u010A' },\n { tex: /\\\\\\.c|\\\\\\.\\{c\\}/, unicode: '\\u010B' },\n { tex: /\\\\\\.E|\\\\\\.\\{E\\}/, unicode: '\\u0116' },\n { tex: /\\\\\\.e|\\\\\\.\\{e\\}/, unicode: '\\u0117' },\n { tex: /\\\\\\.G|\\\\\\.\\{G\\}/, unicode: '\\u0120' },\n { tex: /\\\\\\.g|\\\\\\.\\{g\\}/, unicode: '\\u0121' },\n { tex: /\\\\\\.I|\\\\\\.\\{I\\}/, unicode: '\\u0130' },\n { tex: /\\\\\\.Z|\\\\\\.\\{Z\\}/, unicode: '\\u017B' },\n { tex: /\\\\\\.z|\\\\\\.\\{z\\}/, unicode: '\\u017C' },\n\n { tex: /\\\\=A|\\\\=\\{A\\}/, unicode: '\\u0100' },\n { tex: /\\\\=a|\\\\=\\{a\\}/, unicode: '\\u0101' },\n { tex: /\\\\=E|\\\\=\\{E\\}/, unicode: '\\u0112' },\n { tex: /\\\\=e|\\\\=\\{e\\}/, unicode: '\\u0113' },\n { tex: /\\\\=I|\\\\=\\{I\\}/, unicode: '\\u012A' },\n { tex: /\\\\=\\\\i|\\\\=\\{\\\\i\\}/, unicode: '\\u012B' },\n { tex: /\\\\=O|\\\\=\\{O\\}/, unicode: '\\u014C' },\n { tex: /\\\\=o|\\\\=\\{o\\}/, unicode: '\\u014D' },\n { tex: /\\\\=U|\\\\=\\{U\\}/, unicode: '\\u016A' },\n { tex: /\\\\=u|\\\\=\\{u\\}/, unicode: '\\u016B' },\n\n { tex: /\\\\~A|\\\\~\\{A\\}/, unicode: '\\xC3' },\n { tex: /\\\\~a|\\\\~\\{a\\}/, unicode: '\\xE3' },\n { tex: /\\\\~I|\\\\~\\{I\\}/, unicode: '\\u0128' },\n { tex: /\\\\~\\\\i/, unicode: '\\u0129' },\n { tex: /\\\\~N|\\\\~\\{N\\}/, unicode: '\\xD1' },\n { tex: /\\\\~n|\\\\~\\{n\\}/, unicode: '\\xF1' },\n { tex: /\\\\~O|\\\\~\\{O\\}/, unicode: '\\xD5' },\n { tex: /\\\\~o|\\\\~\\{o\\}/, unicode: '\\xF5' },\n { tex: /\\\\~U|\\\\~\\{U\\}/, unicode: '\\u0168' },\n { tex: /\\\\~u|\\\\~\\{u\\}/, unicode: '\\u0169' },\n\n { tex: /\\\\`A|\\\\`\\{A\\}/, unicode: '\\xC0' },\n { tex: /\\\\`a|\\\\`\\{a\\}/, unicode: '\\xE0' },\n { tex: /\\\\`E|\\\\`\\{E\\}/, unicode: '\\xC8' },\n { tex: /\\\\`e|\\\\`\\{e\\}/, unicode: '\\xE8' },\n { tex: /\\\\`I|\\\\`\\{I\\}/, unicode: '\\xCC' },\n { tex: /\\\\`\\\\i|\\\\`i|\\\\`\\{\\\\i\\}|\\\\`\\{i\\}/, unicode: '\\xEC' },\n { tex: /\\\\`O|\\\\`\\{O\\}/, unicode: '\\xD2' },\n { tex: /\\\\`o|\\\\`\\{o\\}/, unicode: '\\xF2' },\n { tex: /\\\\`U|\\\\`\\{U\\}/, unicode: '\\xD9' },\n { tex: /\\\\`u|\\\\`\\{u\\}/, unicode: '\\xF9' },\n\n { tex: /\\\\\"A|\\\\\"\\{A\\}/, unicode: '\\xC4' },\n { tex: /\\\\\"a|\\\\\"\\{a\\}/, unicode: '\\xE4' },\n { tex: /\\\\\"E|\\\\\"\\{E\\}/, unicode: '\\xCB' },\n { tex: /\\\\\"e|\\\\\"\\{e\\}/, unicode: '\\xEB' },\n { tex: /\\\\\"\\\\i|\\\\\"\\{\\\\i\\}|\\\\\"i|\\\\\"\\{i\\}/, unicode: '\\xEF' },\n { tex: /\\\\\"I|\\\\\"\\{I\\}/, unicode: '\\xCF' },\n { tex: /\\\\\"O|\\\\\"\\{O\\}/, unicode: '\\xD6' },\n { tex: /\\\\\"o|\\\\\"\\{o\\}/, unicode: '\\xF6' },\n { tex: /\\\\\"U|\\\\\"\\{U\\}/, unicode: '\\xDC' },\n { tex: /\\\\\"u|\\\\\"\\{u\\}/, unicode: '\\xFC' },\n { tex: /\\\\\"Y|\\\\\"\\{Y\\}/, unicode: '\\u0178' },\n { tex: /\\\\\"y|\\\\\"\\{y\\}/, unicode: '\\xFF' },\n\n { tex: /\\\\'A|\\\\'\\{A\\}/, unicode: '\\xC1' },\n { tex: /\\\\'a|\\\\'\\{a\\}/, unicode: '\\xE1' },\n { tex: /\\\\'C|\\\\'\\{C\\}/, unicode: '\\u0106' },\n { tex: /\\\\'c|\\\\'\\{c\\}/, unicode: '\\u0107' },\n { tex: /\\\\'E|\\\\'\\{E\\}/, unicode: '\\xC9' },\n { tex: /\\\\'e|\\\\'\\{e\\}/, unicode: '\\xE9' },\n { tex: /\\\\'g|\\\\'\\{g\\}/, unicode: '\\u01F5' },\n { tex: /\\\\'H|\\\\'\\{H\\}/, unicode: '\\u0389' },\n { tex: /\\\\'I|\\\\'\\{I\\}/, unicode: '\\xCD' },\n { tex: /\\\\'\\\\i|\\\\'i/, unicode: '\\xED' },\n { tex: /\\\\'L|\\\\'\\{L\\}/, unicode: '\\u0139' },\n { tex: /\\\\'l|\\\\'\\{l\\}/, unicode: '\\u013A' },\n { tex: /\\\\'N|\\\\'\\{N\\}/, unicode: '\\u0143' },\n { tex: /\\\\'n|\\\\'\\{n\\}/, unicode: '\\u0144' },\n { tex: /\\\\'O|\\\\'\\{O\\}/, unicode: '\\xD3' },\n { tex: /\\\\'o|\\\\'\\{o\\}/, unicode: '\\xF3' },\n { tex: /\\\\'R|\\\\'\\{R\\}/, unicode: '\\u0154' },\n { tex: /\\\\'r|\\\\'\\{r\\}/, unicode: '\\u0155' },\n { tex: /\\\\'S|\\\\'\\{S\\}/, unicode: '\\u015A' },\n { tex: /\\\\'s|\\\\'\\{s\\}/, unicode: '\\u015B' },\n { tex: /\\\\'U|\\\\'\\{U\\}/, unicode: '\\xDA' },\n { tex: /\\\\'u|\\\\'\\{u\\}/, unicode: '\\xFA' },\n { tex: /\\\\'Y|\\\\'\\{Y\\}/, unicode: '\\xDD' },\n { tex: /\\\\'y|\\\\'\\{y\\}/, unicode: '\\xFD' },\n { tex: /\\\\'Z|\\\\'\\{Z\\}/, unicode: '\\u0179' },\n { tex: /\\\\'z|\\\\'\\{z\\}/, unicode: '\\u017A' },\n\n { tex: /\\\\c C|\\\\c\\{C\\}/, unicode: '\\xC7' },\n { tex: /\\\\c c|\\\\c\\{c\\}/, unicode: '\\xE7' },\n { tex: /\\\\c G|\\\\c\\{G\\}/, unicode: '\\u0122' },\n { tex: /\\\\c g|\\\\c\\{g\\}/, unicode: '\\u0123' },\n { tex: /\\\\c K|\\\\c\\{K\\}/, unicode: '\\u0136' },\n { tex: /\\\\c k|\\\\c\\{k\\}/, unicode: '\\u0137' },\n { tex: /\\\\c L|\\\\c\\{L\\}/, unicode: '\\u013B' },\n { tex: /\\\\c l|\\\\c\\{l\\}/, unicode: '\\u013C' },\n { tex: /\\\\c N|\\\\c\\{N\\}/, unicode: '\\u0145' },\n { tex: /\\\\c n|\\\\c\\{n\\}/, unicode: '\\u0146' },\n { tex: /\\\\c R|\\\\c\\{R\\}/, unicode: '\\u0156' },\n { tex: /\\\\c r|\\\\c\\{r\\}/, unicode: '\\u0157' },\n { tex: /\\\\c S|\\\\c\\{S\\}/, unicode: '\\u015E' },\n { tex: /\\\\c s|\\\\c\\{s\\}/, unicode: '\\u015F' },\n { tex: /\\\\c T|\\\\c\\{T\\}/, unicode: '\\u0162' },\n { tex: /\\\\c t|\\\\c\\{t\\}/, unicode: '\\u0163' },\n\n { tex: /\\\\H O|\\\\H\\{O\\}/, unicode: '\\u0150' },\n { tex: /\\\\H o|\\\\H\\{o\\}/, unicode: '\\u0151' },\n { tex: /\\\\H U|\\\\H\\{U\\}/, unicode: '\\u0170' },\n { tex: /\\\\H u|\\\\H\\{u\\}/, unicode: '\\u0171' },\n\n { tex: /\\\\k A|\\\\k\\{A\\}/, unicode: '\\u0104' },\n { tex: /\\\\k a|\\\\k\\{a\\}/, unicode: '\\u0105' },\n { tex: /\\\\k E|\\\\k\\{E\\}/, unicode: '\\u0118' },\n { tex: /\\\\k e|\\\\k\\{e\\}/, unicode: '\\u0119' },\n { tex: /\\\\k I|\\\\k\\{I\\}/, unicode: '\\u012E' },\n { tex: /\\\\k i|\\\\k\\{i\\}/, unicode: '\\u012F' },\n { tex: /\\\\k U|\\\\k\\{U\\}/, unicode: '\\u0172' },\n { tex: /\\\\k u|\\\\k\\{u\\}/, unicode: '\\u0173' },\n\n { tex: /\\\\r U|\\\\r\\{U\\}/, unicode: '\\u016E' },\n { tex: /\\\\r u|\\\\r\\{u\\}/, unicode: '\\u016F' },\n\n { tex: /\\\\u A|\\\\u\\{A\\}/, unicode: '\\u0102' },\n { tex: /\\\\u a|\\\\u\\{a\\}/, unicode: '\\u0103' },\n { tex: /\\\\u E|\\\\u\\{E\\}/, unicode: '\\u0114' },\n { tex: /\\\\u e|\\\\u\\{e\\}/, unicode: '\\u0115' },\n { tex: /\\\\u G|\\\\u\\{G\\}/, unicode: '\\u011E' },\n { tex: /\\\\u g|\\\\u\\{g\\}/, unicode: '\\u011F' },\n { tex: /\\\\u I|\\\\u\\{I\\}/, unicode: '\\u012C' },\n { tex: /\\\\u \\\\i/, unicode: '\\u012D' }, // adding |\\\\u\\{\\\\i\\} breaks the tests?\n { tex: /\\\\u O|\\\\u\\{O\\}/, unicode: '\\u014E' },\n { tex: /\\\\u o|\\\\u\\{o\\}/, unicode: '\\u014F' },\n { tex: /\\\\u U|\\\\u\\{U\\}/, unicode: '\\u016C' },\n { tex: /\\\\u u|\\\\u\\{u\\}/, unicode: '\\u016D' },\n\n { tex: /\\\\v A|\\\\v\\{A\\}/, unicode: '\\u01CD' },\n { tex: /\\\\v a|\\\\v\\{a\\}/, unicode: '\\u01CE' },\n { tex: /\\\\v C|\\\\v\\{C\\}/, unicode: '\\u010C' },\n { tex: /\\\\v c|\\\\v\\{c\\}/, unicode: '\\u010D' },\n { tex: /\\\\v D|\\\\v\\{D\\}/, unicode: '\\u010E' },\n { tex: /\\\\v d|\\\\v\\{d\\}/, unicode: '\\u010F' },\n { tex: /\\\\v E|\\\\v\\{E\\}/, unicode: '\\u011A' },\n { tex: /\\\\v e|\\\\v\\{e\\}/, unicode: '\\u011B' },\n { tex: /\\\\v I|\\\\v\\{I\\}/, unicode: '\\u01CF' },\n { tex: /\\\\v i|\\\\v\\{i\\}/, unicode: '\\u01D0' },\n { tex: /\\\\v L|\\\\v\\{L\\}/, unicode: '\\u013D' },\n { tex: /\\\\v l|\\\\v\\{l\\}/, unicode: '\\u013E' },\n { tex: /\\\\v N|\\\\v\\{N\\}/, unicode: '\\u0147' },\n { tex: /\\\\v n|\\\\v\\{n\\}/, unicode: '\\u0148' },\n { tex: /\\\\v O|\\\\v\\{O\\}/, unicode: '\\u01D1' },\n { tex: /\\\\v o|\\\\v\\{o\\}/, unicode: '\\u01D2' },\n { tex: /\\\\v R|\\\\v\\{R\\}/, unicode: '\\u0158' },\n { tex: /\\\\v r|\\\\v\\{r\\}/, unicode: '\\u0159' },\n { tex: /\\\\v S|\\\\v\\{S\\}/, unicode: '\\u0160' },\n { tex: /\\\\v s|\\\\v\\{s\\}/, unicode: '\\u0161' },\n { tex: /\\\\v T|\\\\v\\{T\\}/, unicode: '\\u0164' },\n { tex: /\\\\v t|\\\\v\\{t\\}/, unicode: '\\u0165' },\n { tex: /\\\\v U|\\\\v\\{U\\}/, unicode: '\\u01D3' },\n { tex: /\\\\v u|\\\\v\\{u\\}/, unicode: '\\u01D4' },\n { tex: /\\\\v Z|\\\\v\\{Z\\}/, unicode: '\\u017D' },\n { tex: /\\\\v z|\\\\v\\{z\\}/, unicode: '\\u017E' },\n\n { tex: /\\\\texteuro|\\{\\\\mbox\\{\\\\texteuro\\}\\}|\\\\mbox\\{\\\\texteuro\\}/, unicode: '\\u20AC' },\n\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char220\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char220/, unicode: '\\u033C' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char225\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char225/, unicode: '\\u0361' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char201\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char201/, unicode: '\\u013F' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char218\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char218/, unicode: '\\u033A' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char202\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char202/, unicode: '\\u0140' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char207\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char207/, unicode: '\\u032F' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char203\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char203/, unicode: '\\u032B' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char185\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char185/, unicode: '\\u0319' },\n { tex: /\\{\\\\fontencoding\\{LEIP\\}\\\\selectfont\\\\char202\\}|\\\\fontencoding\\{LEIP\\}\\\\selectfont\\\\char202/, unicode: '\\u027F' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char184\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char184/, unicode: '\\u0318' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char177\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char177/, unicode: '\\u0311' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char195\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char195/, unicode: '\\u01BA' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char215\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char215/, unicode: '\\u0337' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char216\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char216/, unicode: '\\u0338' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char219\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char219/, unicode: '\\u033B' },\n { tex: /\\{\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char221\\}|\\\\fontencoding\\{LECO\\}\\\\selectfont\\\\char221/, unicode: '\\u033D' },\n { tex: /\\{\\\\fontencoding\\{LEIP\\}\\\\selectfont\\\\char61\\}|\\\\fontencoding\\{LEIP\\}\\\\selectfont\\\\char61/, unicode: '\\u0258' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char63\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char63/, unicode: '\\u0167' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char91\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char91/, unicode: '\\u0138' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char40\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char40/, unicode: '\\u0126' },\n { tex: /\\{\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char47\\}|\\\\fontencoding\\{LELA\\}\\\\selectfont\\\\char47/, unicode: '\\u0166' },\n\n { tex: /\\\\mathbin\\{\\{:\\}\\\\!\\\\!\\{-\\}\\\\!\\\\!\\{:\\}\\}/, unicode: '\\u223A' },\n\n { tex: /\\\\mathbit\\{A\\}/, unicode: '\\uD835\\uDC68' },\n { tex: /\\\\mathbit\\{a\\}/, unicode: '\\uD835\\uDC82' },\n { tex: /\\\\mathbit\\{B\\}/, unicode: '\\uD835\\uDC69' },\n { tex: /\\\\mathbit\\{b\\}/, unicode: '\\uD835\\uDC83' },\n { tex: /\\\\mathbit\\{C\\}/, unicode: '\\uD835\\uDC6A' },\n { tex: /\\\\mathbit\\{c\\}/, unicode: '\\uD835\\uDC84' },\n { tex: /\\\\mathbit\\{\\\\Delta\\}/, unicode: '\\uD835\\uDF1F' },\n { tex: /\\\\mathbit\\{D\\}/, unicode: '\\uD835\\uDC6B' },\n { tex: /\\\\mathbit\\{d\\}/, unicode: '\\uD835\\uDC85' },\n { tex: /\\\\mathbit\\{E\\}/, unicode: '\\uD835\\uDC6C' },\n { tex: /\\\\mathbit\\{e\\}/, unicode: '\\uD835\\uDC86' },\n { tex: /\\\\mathbit\\{F\\}/, unicode: '\\uD835\\uDC6D' },\n { tex: /\\\\mathbit\\{f\\}/, unicode: '\\uD835\\uDC87' },\n { tex: /\\\\mathbit\\{\\\\Gamma\\}/, unicode: '\\uD835\\uDF1E' },\n { tex: /\\\\mathbit\\{G\\}/, unicode: '\\uD835\\uDC6E' },\n { tex: /\\\\mathbit\\{g\\}/, unicode: '\\uD835\\uDC88' },\n { tex: /\\\\mathbit\\{H\\}/, unicode: '\\uD835\\uDC6F' },\n { tex: /\\\\mathbit\\{h\\}/, unicode: '\\uD835\\uDC89' },\n { tex: /\\\\mathbit\\{I\\}/, unicode: '\\uD835\\uDC70' },\n { tex: /\\\\mathbit\\{i\\}/, unicode: '\\uD835\\uDC8A' },\n { tex: /\\\\mathbit\\{J\\}/, unicode: '\\uD835\\uDC71' },\n { tex: /\\\\mathbit\\{j\\}/, unicode: '\\uD835\\uDC8B' },\n { tex: /\\\\mathbit\\{K\\}/, unicode: '\\uD835\\uDC72' },\n { tex: /\\\\mathbit\\{k\\}/, unicode: '\\uD835\\uDC8C' },\n { tex: /\\\\mathbit\\{\\\\Lambda\\}/, unicode: '\\uD835\\uDF26' },\n { tex: /\\\\mathbit\\{L\\}/, unicode: '\\uD835\\uDC73' },\n { tex: /\\\\mathbit\\{l\\}/, unicode: '\\uD835\\uDC8D' },\n { tex: /\\\\mathbit\\{M\\}/, unicode: '\\uD835\\uDC74' },\n { tex: /\\\\mathbit\\{m\\}/, unicode: '\\uD835\\uDC8E' },\n { tex: /\\\\mathbit\\{\\\\nabla\\}/, unicode: '\\uD835\\uDF35' },\n { tex: /\\\\mathbit\\{N\\}/, unicode: '\\uD835\\uDC75' },\n { tex: /\\\\mathbit\\{n\\}/, unicode: '\\uD835\\uDC8F' },\n { tex: /\\\\mathbit\\{\\\\Omega\\}/, unicode: '\\uD835\\uDF34' },\n { tex: /\\\\mathbit\\{O\\}/, unicode: '\\uD835\\uDC76' },\n { tex: /\\\\mathbit\\{o\\}/, unicode: '\\uD835\\uDC90' },\n { tex: /\\\\mathbit\\{\\\\Phi\\}/, unicode: '\\uD835\\uDF31' },\n { tex: /\\\\mathbit\\{\\\\phi\\}/, unicode: '\\uD835\\uDF53' },\n { tex: /\\\\mathbit\\{\\\\Pi\\}/, unicode: '\\uD835\\uDF2B' },\n { tex: /\\\\mathbit\\{\\\\Psi\\}/, unicode: '\\uD835\\uDF33' },\n { tex: /\\\\mathbit\\{P\\}/, unicode: '\\uD835\\uDC77' },\n { tex: /\\\\mathbit\\{p\\}/, unicode: '\\uD835\\uDC91' },\n { tex: /\\\\mathbit\\{Q\\}/, unicode: '\\uD835\\uDC78' },\n { tex: /\\\\mathbit\\{q\\}/, unicode: '\\uD835\\uDC92' },\n { tex: /\\\\mathbit\\{R\\}/, unicode: '\\uD835\\uDC79' },\n { tex: /\\\\mathbit\\{r\\}/, unicode: '\\uD835\\uDC93' },\n { tex: /\\\\mathbit\\{\\\\Sigma\\}/, unicode: '\\uD835\\uDF2E' },\n { tex: /\\\\mathbit\\{S\\}/, unicode: '\\uD835\\uDC7A' },\n { tex: /\\\\mathbit\\{s\\}/, unicode: '\\uD835\\uDC94' },\n { tex: /\\\\mathbit\\{\\\\Theta\\}/, unicode: '\\uD835\\uDF23' },\n { tex: /\\\\mathbit\\{T\\}/, unicode: '\\uD835\\uDC7B' },\n { tex: /\\\\mathbit\\{t\\}/, unicode: '\\uD835\\uDC95' },\n { tex: /\\\\mathbit\\{\\\\Upsilon\\}/, unicode: '\\uD835\\uDF30' },\n { tex: /\\\\mathbit\\{U\\}/, unicode: '\\uD835\\uDC7C' },\n { tex: /\\\\mathbit\\{u\\}/, unicode: '\\uD835\\uDC96' },\n { tex: /\\\\mathbit\\{\\\\varkappa\\}/, unicode: '\\uD835\\uDF52' },\n { tex: /\\\\mathbit\\{\\\\varpi\\}/, unicode: '\\uD835\\uDF55' },\n { tex: /\\\\mathbit\\{\\\\varrho\\}/, unicode: '\\uD835\\uDF54' },\n { tex: /\\\\mathbit\\{\\\\varsigma\\}/, unicode: '\\uD835\\uDF47' },\n { tex: /\\\\mathbit\\{\\\\vartheta\\}/, unicode: '\\uD835\\uDF51' },\n { tex: /\\\\mathbit\\{V\\}/, unicode: '\\uD835\\uDC7D' },\n { tex: /\\\\mathbit\\{v\\}/, unicode: '\\uD835\\uDC97' },\n { tex: /\\\\mathbit\\{W\\}/, unicode: '\\uD835\\uDC7E' },\n { tex: /\\\\mathbit\\{w\\}/, unicode: '\\uD835\\uDC98' },\n { tex: /\\\\mathbit\\{\\\\Xi\\}/, unicode: '\\uD835\\uDF29' },\n { tex: /\\\\mathbit\\{X\\}/, unicode: '\\uD835\\uDC7F' },\n { tex: /\\\\mathbit\\{x\\}/, unicode: '\\uD835\\uDC99' },\n { tex: /\\\\mathbit\\{Y\\}/, unicode: '\\uD835\\uDC80' },\n { tex: /\\\\mathbit\\{y\\}/, unicode: '\\uD835\\uDC9A' },\n { tex: /\\\\mathbit\\{Z\\}/, unicode: '\\uD835\\uDC81' },\n { tex: /\\\\mathbit\\{z\\}/, unicode: '\\uD835\\uDC9B' },\n\n { tex: /\\\\mathsfbfsl\\{A\\}/, unicode: '\\uD835\\uDE3C' },\n { tex: /\\\\mathsfbfsl\\{a\\}/, unicode: '\\uD835\\uDE56' },\n { tex: /\\\\mathsfbfsl\\{B\\}/, unicode: '\\uD835\\uDE3D' },\n { tex: /\\\\mathsfbfsl\\{b\\}/, unicode: '\\uD835\\uDE57' },\n { tex: /\\\\mathsfbfsl\\{C\\}/, unicode: '\\uD835\\uDE3E' },\n { tex: /\\\\mathsfbfsl\\{c\\}/, unicode: '\\uD835\\uDE58' },\n { tex: /\\\\mathsfbfsl\\{\\\\Delta\\}/, unicode: '\\uD835\\uDF93' },\n { tex: /\\\\mathsfbfsl\\{D\\}/, unicode: '\\uD835\\uDE3F' },\n { tex: /\\\\mathsfbfsl\\{d\\}/, unicode: '\\uD835\\uDE59' },\n { tex: /\\\\mathsfbfsl\\{E\\}/, unicode: '\\uD835\\uDE40' },\n { tex: /\\\\mathsfbfsl\\{e\\}/, unicode: '\\uD835\\uDE5A' },\n { tex: /\\\\mathsfbfsl\\{F\\}/, unicode: '\\uD835\\uDE41' },\n { tex: /\\\\mathsfbfsl\\{f\\}/, unicode: '\\uD835\\uDE5B' },\n { tex: /\\\\mathsfbfsl\\{\\\\Gamma\\}/, unicode: '\\uD835\\uDF92' },\n { tex: /\\\\mathsfbfsl\\{G\\}/, unicode: '\\uD835\\uDE42' },\n { tex: /\\\\mathsfbfsl\\{g\\}/, unicode: '\\uD835\\uDE5C' },\n { tex: /\\\\mathsfbfsl\\{H\\}/, unicode: '\\uD835\\uDE43' },\n { tex: /\\\\mathsfbfsl\\{h\\}/, unicode: '\\uD835\\uDE5D' },\n { tex: /\\\\mathsfbfsl\\{I\\}/, unicode: '\\uD835\\uDE44' },\n { tex: /\\\\mathsfbfsl\\{i\\}/, unicode: '\\uD835\\uDE5E' },\n { tex: /\\\\mathsfbfsl\\{J\\}/, unicode: '\\uD835\\uDE45' },\n { tex: /\\\\mathsfbfsl\\{j\\}/, unicode: '\\uD835\\uDE5F' },\n { tex: /\\\\mathsfbfsl\\{K\\}/, unicode: '\\uD835\\uDE46' },\n { tex: /\\\\mathsfbfsl\\{k\\}/, unicode: '\\uD835\\uDE60' },\n { tex: /\\\\mathsfbfsl\\{\\\\Lambda\\}/, unicode: '\\uD835\\uDF9A' },\n { tex: /\\\\mathsfbfsl\\{L\\}/, unicode: '\\uD835\\uDE47' },\n { tex: /\\\\mathsfbfsl\\{l\\}/, unicode: '\\uD835\\uDE61' },\n { tex: /\\\\mathsfbfsl\\{M\\}/, unicode: '\\uD835\\uDE48' },\n { tex: /\\\\mathsfbfsl\\{m\\}/, unicode: '\\uD835\\uDE62' },\n { tex: /\\\\mathsfbfsl\\{\\\\nabla\\}/, unicode: '\\uD835\\uDFA9' },\n { tex: /\\\\mathsfbfsl\\{N\\}/, unicode: '\\uD835\\uDE49' },\n { tex: /\\\\mathsfbfsl\\{n\\}/, unicode: '\\uD835\\uDE63' },\n { tex: /\\\\mathsfbfsl\\{\\\\Omega\\}/, unicode: '\\uD835\\uDFA8' },\n { tex: /\\\\mathsfbfsl\\{O\\}/, unicode: '\\uD835\\uDE4A' },\n { tex: /\\\\mathsfbfsl\\{o\\}/, unicode: '\\uD835\\uDE64' },\n { tex: /\\\\mathsfbfsl\\{\\\\Phi\\}/, unicode: '\\uD835\\uDFA5' },\n { tex: /\\\\mathsfbfsl\\{\\\\phi\\}/, unicode: '\\uD835\\uDFC7' },\n { tex: /\\\\mathsfbfsl\\{\\\\Pi\\}/, unicode: '\\uD835\\uDF9F' },\n { tex: /\\\\mathsfbfsl\\{\\\\Psi\\}/, unicode: '\\uD835\\uDFA7' },\n { tex: /\\\\mathsfbfsl\\{P\\}/, unicode: '\\uD835\\uDE4B' },\n { tex: /\\\\mathsfbfsl\\{p\\}/, unicode: '\\uD835\\uDE65' },\n { tex: /\\\\mathsfbfsl\\{Q\\}/, unicode: '\\uD835\\uDE4C' },\n { tex: /\\\\mathsfbfsl\\{q\\}/, unicode: '\\uD835\\uDE66' },\n { tex: /\\\\mathsfbfsl\\{R\\}/, unicode: '\\uD835\\uDE4D' },\n { tex: /\\\\mathsfbfsl\\{r\\}/, unicode: '\\uD835\\uDE67' },\n { tex: /\\\\mathsfbfsl\\{\\\\Sigma\\}/, unicode: '\\uD835\\uDFA2' },\n { tex: /\\\\mathsfbfsl\\{S\\}/, unicode: '\\uD835\\uDE4E' },\n { tex: /\\\\mathsfbfsl\\{s\\}/, unicode: '\\uD835\\uDE68' },\n { tex: /\\\\mathsfbfsl\\{T\\}/, unicode: '\\uD835\\uDE4F' },\n { tex: /\\\\mathsfbfsl\\{t\\}/, unicode: '\\uD835\\uDE69' },\n { tex: /\\\\mathsfbfsl\\{\\\\Upsilon\\}/, unicode: '\\uD835\\uDFA4' },\n { tex: /\\\\mathsfbfsl\\{U\\}/, unicode: '\\uD835\\uDE50' },\n { tex: /\\\\mathsfbfsl\\{u\\}/, unicode: '\\uD835\\uDE6A' },\n { tex: /\\\\mathsfbfsl\\{\\\\varkappa\\}/, unicode: '\\uD835\\uDFC6' },\n { tex: /\\\\mathsfbfsl\\{\\\\varpi\\}/, unicode: '\\uD835\\uDFC9' },\n { tex: /\\\\mathsfbfsl\\{\\\\varrho\\}/, unicode: '\\uD835\\uDFC8' },\n { tex: /\\\\mathsfbfsl\\{\\\\varsigma\\}/, unicode: '\\uD835\\uDFBB' },\n { tex: /\\\\mathsfbfsl\\{\\\\vartheta\\}/, unicode: '\\uD835\\uDF97' },\n { tex: /\\\\mathsfbfsl\\{V\\}/, unicode: '\\uD835\\uDE51' },\n { tex: /\\\\mathsfbfsl\\{v\\}/, unicode: '\\uD835\\uDE6B' },\n { tex: /\\\\mathsfbfsl\\{W\\}/, unicode: '\\uD835\\uDE52' },\n { tex: /\\\\mathsfbfsl\\{w\\}/, unicode: '\\uD835\\uDE6C' },\n { tex: /\\\\mathsfbfsl\\{\\\\Xi\\}/, unicode: '\\uD835\\uDF9D' },\n { tex: /\\\\mathsfbfsl\\{X\\}/, unicode: '\\uD835\\uDE53' },\n { tex: /\\\\mathsfbfsl\\{x\\}/, unicode: '\\uD835\\uDE6D' },\n { tex: /\\\\mathsfbfsl\\{Y\\}/, unicode: '\\uD835\\uDE54' },\n { tex: /\\\\mathsfbfsl\\{y\\}/, unicode: '\\uD835\\uDE6E' },\n { tex: /\\\\mathsfbfsl\\{Z\\}/, unicode: '\\uD835\\uDE55' },\n { tex: /\\\\mathsfbfsl\\{z\\}/, unicode: '\\uD835\\uDE6F' },\n\n { tex: /\\\\mathsfbf\\{0\\}/, unicode: '\\uD835\\uDFEC' },\n { tex: /\\\\mathsfbf\\{1\\}/, unicode: '\\uD835\\uDFED' },\n { tex: /\\\\mathsfbf\\{2\\}/, unicode: '\\uD835\\uDFEE' },\n { tex: /\\\\mathsfbf\\{3\\}/, unicode: '\\uD835\\uDFEF' },\n { tex: /\\\\mathsfbf\\{4\\}/, unicode: '\\uD835\\uDFF0' },\n { tex: /\\\\mathsfbf\\{5\\}/, unicode: '\\uD835\\uDFF1' },\n { tex: /\\\\mathsfbf\\{6\\}/, unicode: '\\uD835\\uDFF2' },\n { tex: /\\\\mathsfbf\\{7\\}/, unicode: '\\uD835\\uDFF3' },\n { tex: /\\\\mathsfbf\\{8\\}/, unicode: '\\uD835\\uDFF4' },\n { tex: /\\\\mathsfbf\\{9\\}/, unicode: '\\uD835\\uDFF5' },\n { tex: /\\\\mathsfbf\\{A\\}/, unicode: '\\uD835\\uDDD4' },\n { tex: /\\\\mathsfbf\\{a\\}/, unicode: '\\uD835\\uDDEE' },\n { tex: /\\\\mathsfbf\\{B\\}/, unicode: '\\uD835\\uDDD5' },\n { tex: /\\\\mathsfbf\\{b\\}/, unicode: '\\uD835\\uDDEF' },\n { tex: /\\\\mathsfbf\\{C\\}/, unicode: '\\uD835\\uDDD6' },\n { tex: /\\\\mathsfbf\\{c\\}/, unicode: '\\uD835\\uDDF0' },\n { tex: /\\\\mathsfbf\\{\\\\Delta\\}/, unicode: '\\uD835\\uDF59' },\n { tex: /\\\\mathsfbf\\{D\\}/, unicode: '\\uD835\\uDDD7' },\n { tex: /\\\\mathsfbf\\{d\\}/, unicode: '\\uD835\\uDDF1' },\n { tex: /\\\\mathsfbf\\{E\\}/, unicode: '\\uD835\\uDDD8' },\n { tex: /\\\\mathsfbf\\{e\\}/, unicode: '\\uD835\\uDDF2' },\n { tex: /\\\\mathsfbf\\{F\\}/, unicode: '\\uD835\\uDDD9' },\n { tex: /\\\\mathsfbf\\{f\\}/, unicode: '\\uD835\\uDDF3' },\n { tex: /\\\\mathsfbf\\{\\\\Gamma\\}/, unicode: '\\uD835\\uDF58' },\n { tex: /\\\\mathsfbf\\{G\\}/, unicode: '\\uD835\\uDDDA' },\n { tex: /\\\\mathsfbf\\{g\\}/, unicode: '\\uD835\\uDDF4' },\n { tex: /\\\\mathsfbf\\{H\\}/, unicode: '\\uD835\\uDDDB' },\n { tex: /\\\\mathsfbf\\{h\\}/, unicode: '\\uD835\\uDDF5' },\n { tex: /\\\\mathsfbf\\{I\\}/, unicode: '\\uD835\\uDDDC' },\n { tex: /\\\\mathsfbf\\{i\\}/, unicode: '\\uD835\\uDDF6' },\n { tex: /\\\\mathsfbf\\{J\\}/, unicode: '\\uD835\\uDDDD' },\n { tex: /\\\\mathsfbf\\{j\\}/, unicode: '\\uD835\\uDDF7' },\n { tex: /\\\\mathsfbf\\{K\\}/, unicode: '\\uD835\\uDDDE' },\n { tex: /\\\\mathsfbf\\{k\\}/, unicode: '\\uD835\\uDDF8' },\n { tex: /\\\\mathsfbf\\{\\\\Lambda\\}/, unicode: '\\uD835\\uDF60' },\n { tex: /\\\\mathsfbf\\{L\\}/, unicode: '\\uD835\\uDDDF' },\n { tex: /\\\\mathsfbf\\{l\\}/, unicode: '\\uD835\\uDDF9' },\n { tex: /\\\\mathsfbf\\{M\\}/, unicode: '\\uD835\\uDDE0' },\n { tex: /\\\\mathsfbf\\{m\\}/, unicode: '\\uD835\\uDDFA' },\n { tex: /\\\\mathsfbf\\{\\\\nabla\\}/, unicode: '\\uD835\\uDF6F' },\n { tex: /\\\\mathsfbf\\{N\\}/, unicode: '\\uD835\\uDDE1' },\n { tex: /\\\\mathsfbf\\{n\\}/, unicode: '\\uD835\\uDDFB' },\n { tex: /\\\\mathsfbf\\{\\\\Omega\\}/, unicode: '\\uD835\\uDF6E' },\n { tex: /\\\\mathsfbf\\{O\\}/, unicode: '\\uD835\\uDDE2' },\n { tex: /\\\\mathsfbf\\{o\\}/, unicode: '\\uD835\\uDDFC' },\n { tex: /\\\\mathsfbf\\{\\\\Phi\\}/, unicode: '\\uD835\\uDF6B' },\n { tex: /\\\\mathsfbf\\{\\\\phi\\}/, unicode: '\\uD835\\uDF8D' },\n { tex: /\\\\mathsfbf\\{\\\\Pi\\}/, unicode: '\\uD835\\uDF65' },\n { tex: /\\\\mathsfbf\\{\\\\Psi\\}/, unicode: '\\uD835\\uDF6D' },\n { tex: /\\\\mathsfbf\\{P\\}/, unicode: '\\uD835\\uDDE3' },\n { tex: /\\\\mathsfbf\\{p\\}/, unicode: '\\uD835\\uDDFD' },\n { tex: /\\\\mathsfbf\\{Q\\}/, unicode: '\\uD835\\uDDE4' },\n { tex: /\\\\mathsfbf\\{q\\}/, unicode: '\\uD835\\uDDFE' },\n { tex: /\\\\mathsfbf\\{R\\}/, unicode: '\\uD835\\uDDE5' },\n { tex: /\\\\mathsfbf\\{r\\}/, unicode: '\\uD835\\uDDFF' },\n { tex: /\\\\mathsfbf\\{\\\\Sigma\\}/, unicode: '\\uD835\\uDF68' },\n { tex: /\\\\mathsfbf\\{S\\}/, unicode: '\\uD835\\uDDE6' },\n { tex: /\\\\mathsfbf\\{s\\}/, unicode: '\\uD835\\uDE00' },\n { tex: /\\\\mathsfbf\\{\\\\Theta\\}/, unicode: '\\uD835\\uDF5D' },\n { tex: /\\\\mathsfbf\\{T\\}/, unicode: '\\uD835\\uDDE7' },\n { tex: /\\\\mathsfbf\\{t\\}/, unicode: '\\uD835\\uDE01' },\n { tex: /\\\\mathsfbf\\{\\\\Upsilon\\}/, unicode: '\\uD835\\uDF6A' },\n { tex: /\\\\mathsfbf\\{U\\}/, unicode: '\\uD835\\uDDE8' },\n { tex: /\\\\mathsfbf\\{u\\}/, unicode: '\\uD835\\uDE02' },\n { tex: /\\\\mathsfbf\\{\\\\varkappa\\}/, unicode: '\\uD835\\uDF8C' },\n { tex: /\\\\mathsfbf\\{\\\\varpi\\}/, unicode: '\\uD835\\uDF8F' },\n { tex: /\\\\mathsfbf\\{\\\\varrho\\}/, unicode: '\\uD835\\uDF8E' },\n { tex: /\\\\mathsfbf\\{\\\\varsigma\\}/, unicode: '\\uD835\\uDF81' },\n { tex: /\\\\mathsfbf\\{\\\\vartheta\\}/, unicode: '\\uD835\\uDF67' },\n { tex: /\\\\mathsfbf\\{V\\}/, unicode: '\\uD835\\uDDE9' },\n { tex: /\\\\mathsfbf\\{v\\}/, unicode: '\\uD835\\uDE03' },\n { tex: /\\\\mathsfbf\\{W\\}/, unicode: '\\uD835\\uDDEA' },\n { tex: /\\\\mathsfbf\\{w\\}/, unicode: '\\uD835\\uDE04' },\n { tex: /\\\\mathsfbf\\{\\\\Xi\\}/, unicode: '\\uD835\\uDF63' },\n { tex: /\\\\mathsfbf\\{X\\}/, unicode: '\\uD835\\uDDEB' },\n { tex: /\\\\mathsfbf\\{x\\}/, unicode: '\\uD835\\uDE05' },\n { tex: /\\\\mathsfbf\\{Y\\}/, unicode: '\\uD835\\uDDEC' },\n { tex: /\\\\mathsfbf\\{y\\}/, unicode: '\\uD835\\uDE06' },\n { tex: /\\\\mathsfbf\\{Z\\}/, unicode: '\\uD835\\uDDED' },\n { tex: /\\\\mathsfbf\\{z\\}/, unicode: '\\uD835\\uDE07' },\n\n { tex: /\\\\mathrm\\{\\\\ddot\\{I\\}\\}/, unicode: '\\u03AA' },\n { tex: /\\\\mathrm\\{\\\\ddot\\{Y\\}\\}/, unicode: '\\u03AB' },\n { tex: /\\\\mathrm\\{\\\\mu\\}/, unicode: '\\xB5' },\n { tex: /\\\\mathrm\\{'\\\\Omega\\}/, unicode: '\\u038F' },\n { tex: /\\\\mathrm\\{'Y\\}/, unicode: '\\u038E' },\n { tex: /\\\\mathrm/, unicode: '' }, // must be last in group\n\n { tex: /\\\\mathsl\\{A\\}/, unicode: '\\uD835\\uDC34' },\n { tex: /\\\\mathsl\\{a\\}/, unicode: '\\uD835\\uDC4E' },\n { tex: /\\\\mathsl\\{B\\}/, unicode: '\\uD835\\uDC35' },\n { tex: /\\\\mathsl\\{b\\}/, unicode: '\\uD835\\uDC4F' },\n { tex: /\\\\mathsl\\{C\\}/, unicode: '\\uD835\\uDC36' },\n { tex: /\\\\mathsl\\{c\\}/, unicode: '\\uD835\\uDC50' },\n { tex: /\\\\mathsl\\{\\\\Delta\\}/, unicode: '\\uD835\\uDEE5' },\n { tex: /\\\\mathsl\\{D\\}/, unicode: '\\uD835\\uDC37' },\n { tex: /\\\\mathsl\\{d\\}/, unicode: '\\uD835\\uDC51' },\n { tex: /\\\\mathsl\\{E\\}/, unicode: '\\uD835\\uDC38' },\n { tex: /\\\\mathsl\\{e\\}/, unicode: '\\uD835\\uDC52' },\n { tex: /\\\\mathsl\\{F\\}/, unicode: '\\uD835\\uDC39' },\n { tex: /\\\\mathsl\\{f\\}/, unicode: '\\uD835\\uDC53' },\n { tex: /\\\\mathsl\\{\\\\Gamma\\}/, unicode: '\\uD835\\uDEE4' },\n { tex: /\\\\mathsl\\{G\\}/, unicode: '\\uD835\\uDC3A' },\n { tex: /\\\\mathsl\\{g\\}/, unicode: '\\uD835\\uDC54' },\n { tex: /\\\\mathsl\\{H\\}/, unicode: '\\uD835\\uDC3B' },\n { tex: /\\\\mathsl\\{I\\}/, unicode: '\\uD835\\uDC3C' },\n { tex: /\\\\mathsl\\{i\\}/, unicode: '\\uD835\\uDC56' },\n { tex: /\\\\mathsl\\{J\\}/, unicode: '\\uD835\\uDC3D' },\n { tex: /\\\\mathsl\\{j\\}/, unicode: '\\uD835\\uDC57' },\n { tex: /\\\\mathsl\\{K\\}/, unicode: '\\uD835\\uDC3E' },\n { tex: /\\\\mathsl\\{k\\}/, unicode: '\\uD835\\uDC58' },\n { tex: /\\\\mathsl\\{\\\\Lambda\\}/, unicode: '\\uD835\\uDEEC' },\n { tex: /\\\\mathsl\\{L\\}/, unicode: '\\uD835\\uDC3F' },\n { tex: /\\\\mathsl\\{l\\}/, unicode: '\\uD835\\uDC59' },\n { tex: /\\\\mathsl\\{M\\}/, unicode: '\\uD835\\uDC40' },\n { tex: /\\\\mathsl\\{m\\}/, unicode: '\\uD835\\uDC5A' },\n { tex: /\\\\mathsl\\{\\\\nabla\\}/, unicode: '\\uD835\\uDEFB' },\n { tex: /\\\\mathsl\\{N\\}/, unicode: '\\uD835\\uDC41' },\n { tex: /\\\\mathsl\\{n\\}/, unicode: '\\uD835\\uDC5B' },\n { tex: /\\\\mathsl\\{\\\\Omega\\}/, unicode: '\\uD835\\uDEFA' },\n { tex: /\\\\mathsl\\{O\\}/, unicode: '\\uD835\\uDC42' },\n { tex: /\\\\mathsl\\{o\\}/, unicode: '\\uD835\\uDC5C' },\n { tex: /\\\\mathsl\\{\\\\Phi\\}/, unicode: '\\uD835\\uDEF7' },\n { tex: /\\\\mathsl\\{\\\\phi\\}/, unicode: '\\uD835\\uDF19' },\n { tex: /\\\\mathsl\\{\\\\Pi\\}/, unicode: '\\uD835\\uDEF1' },\n { tex: /\\\\mathsl\\{\\\\Psi\\}/, unicode: '\\uD835\\uDEF9' },\n { tex: /\\\\mathsl\\{P\\}/, unicode: '\\uD835\\uDC43' },\n { tex: /\\\\mathsl\\{p\\}/, unicode: '\\uD835\\uDC5D' },\n { tex: /\\\\mathsl\\{Q\\}/, unicode: '\\uD835\\uDC44' },\n { tex: /\\\\mathsl\\{q\\}/, unicode: '\\uD835\\uDC5E' },\n { tex: /\\\\mathsl\\{R\\}/, unicode: '\\uD835\\uDC45' },\n { tex: /\\\\mathsl\\{r\\}/, unicode: '\\uD835\\uDC5F' },\n { tex: /\\\\mathsl\\{\\\\Sigma\\}/, unicode: '\\uD835\\uDEF4' },\n { tex: /\\\\mathsl\\{S\\}/, unicode: '\\uD835\\uDC46' },\n { tex: /\\\\mathsl\\{s\\}/, unicode: '\\uD835\\uDC60' },\n { tex: /\\\\mathsl\\{\\\\Theta\\}/, unicode: '\\uD835\\uDEE9' },\n { tex: /\\\\mathsl\\{T\\}/, unicode: '\\uD835\\uDC47' },\n { tex: /\\\\mathsl\\{t\\}/, unicode: '\\uD835\\uDC61' },\n { tex: /\\\\mathsl\\{\\\\Upsilon\\}/, unicode: '\\uD835\\uDEF6' },\n { tex: /\\\\mathsl\\{U\\}/, unicode: '\\uD835\\uDC48' },\n { tex: /\\\\mathsl\\{u\\}/, unicode: '\\uD835\\uDC62' },\n { tex: /\\\\mathsl\\{\\\\varkappa\\}/, unicode: '\\uD835\\uDF18' },\n { tex: /\\\\mathsl\\{\\\\varpi\\}/, unicode: '\\uD835\\uDF1B' },\n { tex: /\\\\mathsl\\{\\\\varrho\\}/, unicode: '\\uD835\\uDF1A' },\n { tex: /\\\\mathsl\\{\\\\varsigma\\}/, unicode: '\\uD835\\uDF0D' },\n { tex: /\\\\mathsl\\{\\\\vartheta\\}/, unicode: '\\uD835\\uDEF3' },\n { tex: /\\\\mathsl\\{V\\}/, unicode: '\\uD835\\uDC49' },\n { tex: /\\\\mathsl\\{v\\}/, unicode: '\\uD835\\uDC63' },\n { tex: /\\\\mathsl\\{W\\}/, unicode: '\\uD835\\uDC4A' },\n { tex: /\\\\mathsl\\{w\\}/, unicode: '\\uD835\\uDC64' },\n { tex: /\\\\mathsl\\{\\\\Xi\\}/, unicode: '\\uD835\\uDEEF' },\n { tex: /\\\\mathsl\\{X\\}/, unicode: '\\uD835\\uDC4B' },\n { tex: /\\\\mathsl\\{x\\}/, unicode: '\\uD835\\uDC65' },\n { tex: /\\\\mathsl\\{Y\\}/, unicode: '\\uD835\\uDC4C' },\n { tex: /\\\\mathsl\\{y\\}/, unicode: '\\uD835\\uDC66' },\n { tex: /\\\\mathsl\\{Z\\}/, unicode: '\\uD835\\uDC4D' },\n { tex: /\\\\mathsl\\{z\\}/, unicode: '\\uD835\\uDC67' },\n\n { tex: /\\\\mathbf\\{0\\}/, unicode: '\\uD835\\uDFCE' },\n { tex: /\\\\mathbf\\{1\\}/, unicode: '\\uD835\\uDFCF' },\n { tex: /\\\\mathbf\\{2\\}/, unicode: '\\uD835\\uDFD0' },\n { tex: /\\\\mathbf\\{3\\}/, unicode: '\\uD835\\uDFD1' },\n { tex: /\\\\mathbf\\{4\\}/, unicode: '\\uD835\\uDFD2' },\n { tex: /\\\\mathbf\\{5\\}/, unicode: '\\uD835\\uDFD3' },\n { tex: /\\\\mathbf\\{6\\}/, unicode: '\\uD835\\uDFD4' },\n { tex: /\\\\mathbf\\{7\\}/, unicode: '\\uD835\\uDFD5' },\n { tex: /\\\\mathbf\\{8\\}/, unicode: '\\uD835\\uDFD6' },\n { tex: /\\\\mathbf\\{9\\}/, unicode: '\\uD835\\uDFD7' },\n { tex: /\\\\mathbf\\{A\\}/, unicode: '\\uD835\\uDC00' },\n { tex: /\\\\mathbf\\{a\\}/, unicode: '\\uD835\\uDC1A' },\n { tex: /\\\\mathbf\\{B\\}/, unicode: '\\uD835\\uDC01' },\n { tex: /\\\\mathbf\\{b\\}/, unicode: '\\uD835\\uDC1B' },\n { tex: /\\\\mathbf\\{C\\}/, unicode: '\\uD835\\uDC02' },\n { tex: /\\\\mathbf\\{c\\}/, unicode: '\\uD835\\uDC1C' },\n { tex: /\\\\mathbf\\{\\\\Delta\\}/, unicode: '\\uD835\\uDEAB' },\n { tex: /\\\\mathbf\\{D\\}/, unicode: '\\uD835\\uDC03' },\n { tex: /\\\\mathbf\\{d\\}/, unicode: '\\uD835\\uDC1D' },\n { tex: /\\\\mathbf\\{E\\}/, unicode: '\\uD835\\uDC04' },\n { tex: /\\\\mathbf\\{e\\}/, unicode: '\\uD835\\uDC1E' },\n { tex: /\\\\mathbf\\{F\\}/, unicode: '\\uD835\\uDC05' },\n { tex: /\\\\mathbf\\{f\\}/, unicode: '\\uD835\\uDC1F' },\n { tex: /\\\\mathbf\\{\\\\Gamma\\}/, unicode: '\\uD835\\uDEAA' },\n { tex: /\\\\mathbf\\{G\\}/, unicode: '\\uD835\\uDC06' },\n { tex: /\\\\mathbf\\{g\\}/, unicode: '\\uD835\\uDC20' },\n { tex: /\\\\mathbf\\{H\\}/, unicode: '\\uD835\\uDC07' },\n { tex: /\\\\mathbf\\{h\\}/, unicode: '\\uD835\\uDC21' },\n { tex: /\\\\mathbf\\{I\\}/, unicode: '\\uD835\\uDC08' },\n { tex: /\\\\mathbf\\{i\\}/, unicode: '\\uD835\\uDC22' },\n { tex: /\\\\mathbf\\{J\\}/, unicode: '\\uD835\\uDC09' },\n { tex: /\\\\mathbf\\{j\\}/, unicode: '\\uD835\\uDC23' },\n { tex: /\\\\mathbf\\{K\\}/, unicode: '\\uD835\\uDC0A' },\n { tex: /\\\\mathbf\\{k\\}/, unicode: '\\uD835\\uDC24' },\n { tex: /\\\\mathbf\\{\\\\Lambda\\}/, unicode: '\\uD835\\uDEB2' },\n { tex: /\\\\mathbf\\{L\\}/, unicode: '\\uD835\\uDC0B' },\n { tex: /\\\\mathbf\\{l\\}/, unicode: '\\uD835\\uDC25' },\n { tex: /\\\\mathbf\\{M\\}/, unicode: '\\uD835\\uDC0C' },\n { tex: /\\\\mathbf\\{m\\}/, unicode: '\\uD835\\uDC26' },\n { tex: /\\\\mathbf\\{\\\\nabla\\}/, unicode: '\\uD835\\uDEC1' },\n { tex: /\\\\mathbf\\{N\\}/, unicode: '\\uD835\\uDC0D' },\n { tex: /\\\\mathbf\\{n\\}/, unicode: '\\uD835\\uDC27' },\n { tex: /\\\\mathbf\\{\\\\Omega\\}/, unicode: '\\uD835\\uDEC0' },\n { tex: /\\\\mathbf\\{O\\}/, unicode: '\\uD835\\uDC0E' },\n { tex: /\\\\mathbf\\{o\\}/, unicode: '\\uD835\\uDC28' },\n { tex: /\\\\mathbf\\{\\\\Phi\\}/, unicode: '\\uD835\\uDEBD' },\n { tex: /\\\\mathbf\\{\\\\phi\\}/, unicode: '\\uD835\\uDEDF' },\n { tex: /\\\\mathbf\\{\\\\Pi\\}/, unicode: '\\uD835\\uDEB7' },\n { tex: /\\\\mathbf\\{\\\\Psi\\}/, unicode: '\\uD835\\uDEBF' },\n { tex: /\\\\mathbf\\{P\\}/, unicode: '\\uD835\\uDC0F' },\n { tex: /\\\\mathbf\\{p\\}/, unicode: '\\uD835\\uDC29' },\n { tex: /\\\\mathbf\\{Q\\}/, unicode: '\\uD835\\uDC10' },\n { tex: /\\\\mathbf\\{q\\}/, unicode: '\\uD835\\uDC2A' },\n { tex: /\\\\mathbf\\{R\\}/, unicode: '\\uD835\\uDC11' },\n { tex: /\\\\mathbf\\{r\\}/, unicode: '\\uD835\\uDC2B' },\n { tex: /\\\\mathbf\\{\\\\Sigma\\}/, unicode: '\\uD835\\uDEBA' },\n { tex: /\\\\mathbf\\{S\\}/, unicode: '\\uD835\\uDC12' },\n { tex: /\\\\mathbf\\{s\\}/, unicode: '\\uD835\\uDC2C' },\n { tex: /\\\\mathbf\\{\\\\Theta\\}/, unicode: '\\uD835\\uDEAF' },\n { tex: /\\\\mathbf\\{\\\\theta\\}/, unicode: '\\uD835\\uDEC9' },\n { tex: /\\\\mathbf\\{T\\}/, unicode: '\\uD835\\uDC13' },\n { tex: /\\\\mathbf\\{t\\}/, unicode: '\\uD835\\uDC2D' },\n { tex: /\\\\mathbf\\{\\\\Upsilon\\}/, unicode: '\\uD835\\uDEBC' },\n { tex: /\\\\mathbf\\{U\\}/, unicode: '\\uD835\\uDC14' },\n { tex: /\\\\mathbf\\{u\\}/, unicode: '\\uD835\\uDC2E' },\n { tex: /\\\\mathbf\\{\\\\varkappa\\}/, unicode: '\\uD835\\uDEDE' },\n { tex: /\\\\mathbf\\{\\\\varpi\\}/, unicode: '\\uD835\\uDEE1' },\n { tex: /\\\\mathbf\\{\\\\varrho\\}/, unicode: '\\uD835\\uDEE0' },\n { tex: /\\\\mathbf\\{\\\\varsigma\\}/, unicode: '\\uD835\\uDED3' },\n { tex: /\\\\mathbf\\{\\\\vartheta\\}/, unicode: '\\uD835\\uDEB9' },\n { tex: /\\\\mathbf\\{V\\}/, unicode: '\\uD835\\uDC15' },\n { tex: /\\\\mathbf\\{v\\}/, unicode: '\\uD835\\uDC2F' },\n { tex: /\\\\mathbf\\{W\\}/, unicode: '\\uD835\\uDC16' },\n { tex: /\\\\mathbf\\{w\\}/, unicode: '\\uD835\\uDC30' },\n { tex: /\\\\mathbf\\{\\\\Xi\\}/, unicode: '\\uD835\\uDEB5' },\n { tex: /\\\\mathbf\\{X\\}/, unicode: '\\uD835\\uDC17' },\n { tex: /\\\\mathbf\\{x\\}/, unicode: '\\uD835\\uDC31' },\n { tex: /\\\\mathbf\\{Y\\}/, unicode: '\\uD835\\uDC18' },\n { tex: /\\\\mathbf\\{y\\}/, unicode: '\\uD835\\uDC32' },\n { tex: /\\\\mathbf\\{Z\\}/, unicode: '\\uD835\\uDC19' },\n { tex: /\\\\mathbf\\{z\\}/, unicode: '\\uD835\\uDC33' },\n\n { tex: /\\\\mathbb\\{0\\}/, unicode: '\\uD835\\uDFD8' },\n { tex: /\\\\mathbb\\{1\\}/, unicode: '\\uD835\\uDFD9' },\n { tex: /\\\\mathbb\\{2\\}/, unicode: '\\uD835\\uDFDA' },\n { tex: /\\\\mathbb\\{3\\}/, unicode: '\\uD835\\uDFDB' },\n { tex: /\\\\mathbb\\{4\\}/, unicode: '\\uD835\\uDFDC' },\n { tex: /\\\\mathbb\\{5\\}/, unicode: '\\uD835\\uDFDD' },\n { tex: /\\\\mathbb\\{6\\}/, unicode: '\\uD835\\uDFDE' },\n { tex: /\\\\mathbb\\{7\\}/, unicode: '\\uD835\\uDFDF' },\n { tex: /\\\\mathbb\\{8\\}/, unicode: '\\uD835\\uDFE0' },\n { tex: /\\\\mathbb\\{9\\}/, unicode: '\\uD835\\uDFE1' },\n { tex: /\\\\mathbb\\{A\\}/, unicode: '\\uD835\\uDD38' },\n { tex: /\\\\mathbb\\{a\\}/, unicode: '\\uD835\\uDD52' },\n { tex: /\\\\mathbb\\{B\\}/, unicode: '\\uD835\\uDD39' },\n { tex: /\\\\mathbb\\{b\\}/, unicode: '\\uD835\\uDD53' },\n { tex: /\\\\mathbb\\{C\\}/, unicode: '\\u2102' },\n { tex: /\\\\mathbb\\{c\\}/, unicode: '\\uD835\\uDD54' },\n { tex: /\\\\mathbb\\{D\\}/, unicode: '\\uD835\\uDD3B' },\n { tex: /\\\\mathbb\\{d\\}/, unicode: '\\uD835\\uDD55' },\n { tex: /\\\\mathbb\\{E\\}/, unicode: '\\uD835\\uDD3C' },\n { tex: /\\\\mathbb\\{e\\}/, unicode: '\\uD835\\uDD56' },\n { tex: /\\\\mathbb\\{F\\}/, unicode: '\\uD835\\uDD3D' },\n { tex: /\\\\mathbb\\{f\\}/, unicode: '\\uD835\\uDD57' },\n { tex: /\\\\mathbb\\{\\\\gamma\\}/, unicode: '\\u213D' },\n { tex: /\\\\mathbb\\{\\\\Gamma\\}/, unicode: '\\u213E' },\n { tex: /\\\\mathbb\\{G\\}/, unicode: '\\uD835\\uDD3E' },\n { tex: /\\\\mathbb\\{g\\}/, unicode: '\\uD835\\uDD58' },\n { tex: /\\\\mathbb\\{H\\}/, unicode: '\\u210D' },\n { tex: /\\\\mathbb\\{h\\}/, unicode: '\\uD835\\uDD59' },\n { tex: /\\\\mathbb\\{I\\}/, unicode: '\\uD835\\uDD40' },\n { tex: /\\\\mathbb\\{i\\}/, unicode: '\\uD835\\uDD5A' },\n { tex: /\\\\mathbb\\{J\\}/, unicode: '\\uD835\\uDD41' },\n { tex: /\\\\mathbb\\{j\\}/, unicode: '\\uD835\\uDD5B' },\n { tex: /\\\\mathbb\\{K\\}/, unicode: '\\uD835\\uDD42' },\n { tex: /\\\\mathbb\\{k\\}/, unicode: '\\uD835\\uDD5C' },\n { tex: /\\\\mathbb\\{L\\}/, unicode: '\\uD835\\uDD43' },\n { tex: /\\\\mathbb\\{l\\}/, unicode: '\\uD835\\uDD5D' },\n { tex: /\\\\mathbb\\{M\\}/, unicode: '\\uD835\\uDD44' },\n { tex: /\\\\mathbb\\{m\\}/, unicode: '\\uD835\\uDD5E' },\n { tex: /\\\\mathbb\\{N\\}/, unicode: '\\u2115' },\n { tex: /\\\\mathbb\\{n\\}/, unicode: '\\uD835\\uDD5F' },\n { tex: /\\\\mathbb\\{O\\}/, unicode: '\\uD835\\uDD46' },\n { tex: /\\\\mathbb\\{o\\}/, unicode: '\\uD835\\uDD60' },\n { tex: /\\\\mathbb\\{\\\\pi\\}/, unicode: '\\u213C' },\n { tex: /\\\\mathbb\\{\\\\Pi\\}/, unicode: '\\u213F' },\n { tex: /\\\\mathbb\\{P\\}/, unicode: '\\u2119' },\n { tex: /\\\\mathbb\\{p\\}/, unicode: '\\uD835\\uDD61' },\n { tex: /\\\\mathbb\\{Q\\}/, unicode: '\\u211A' },\n { tex: /\\\\mathbb\\{q\\}/, unicode: '\\uD835\\uDD62' },\n { tex: /\\\\mathbb\\{R\\}/, unicode: '\\u211D' },\n { tex: /\\\\mathbb\\{r\\}/, unicode: '\\uD835\\uDD63' },\n { tex: /\\\\mathbb\\{\\\\Sigma\\}/, unicode: '\\u2140' },\n { tex: /\\\\mathbb\\{S\\}/, unicode: '\\uD835\\uDD4A' },\n { tex: /\\\\mathbb\\{s\\}/, unicode: '\\uD835\\uDD64' },\n { tex: /\\\\mathbb\\{T\\}/, unicode: '\\uD835\\uDD4B' },\n { tex: /\\\\mathbb\\{t\\}/, unicode: '\\uD835\\uDD65' },\n { tex: /\\\\mathbb\\{U\\}/, unicode: '\\uD835\\uDD4C' },\n { tex: /\\\\mathbb\\{u\\}/, unicode: '\\uD835\\uDD66' },\n { tex: /\\\\mathbb\\{V\\}/, unicode: '\\uD835\\uDD4D' },\n { tex: /\\\\mathbb\\{v\\}/, unicode: '\\uD835\\uDD67' },\n { tex: /\\\\mathbb\\{W\\}/, unicode: '\\uD835\\uDD4E' },\n { tex: /\\\\mathbb\\{w\\}/, unicode: '\\uD835\\uDD68' },\n { tex: /\\\\mathbb\\{X\\}/, unicode: '\\uD835\\uDD4F' },\n { tex: /\\\\mathbb\\{x\\}/, unicode: '\\uD835\\uDD69' },\n { tex: /\\\\mathbb\\{Y\\}/, unicode: '\\uD835\\uDD50' },\n { tex: /\\\\mathbb\\{y\\}/, unicode: '\\uD835\\uDD6A' },\n { tex: /\\\\mathbb\\{Z\\}/, unicode: '\\u2124' },\n { tex: /\\\\mathbb\\{z\\}/, unicode: '\\uD835\\uDD6B' },\n\n { tex: /\\\\mathslbb\\{A\\}/, unicode: '\\uD835\\uDD6C' },\n { tex: /\\\\mathslbb\\{a\\}/, unicode: '\\uD835\\uDD86' },\n { tex: /\\\\mathslbb\\{B\\}/, unicode: '\\uD835\\uDD6D' },\n { tex: /\\\\mathslbb\\{b\\}/, unicode: '\\uD835\\uDD87' },\n { tex: /\\\\mathslbb\\{C\\}/, unicode: '\\uD835\\uDD6E' },\n { tex: /\\\\mathslbb\\{c\\}/, unicode: '\\uD835\\uDD88' },\n { tex: /\\\\mathslbb\\{D\\}/, unicode: '\\uD835\\uDD6F' },\n { tex: /\\\\mathslbb\\{d\\}/, unicode: '\\uD835\\uDD89' },\n { tex: /\\\\mathslbb\\{E\\}/, unicode: '\\uD835\\uDD70' },\n { tex: /\\\\mathslbb\\{e\\}/, unicode: '\\uD835\\uDD8A' },\n { tex: /\\\\mathslbb\\{F\\}/, unicode: '\\uD835\\uDD71' },\n { tex: /\\\\mathslbb\\{f\\}/, unicode: '\\uD835\\uDD8B' },\n { tex: /\\\\mathslbb\\{G\\}/, unicode: '\\uD835\\uDD72' },\n { tex: /\\\\mathslbb\\{g\\}/, unicode: '\\uD835\\uDD8C' },\n { tex: /\\\\mathslbb\\{H\\}/, unicode: '\\uD835\\uDD73' },\n { tex: /\\\\mathslbb\\{h\\}/, unicode: '\\uD835\\uDD8D' },\n { tex: /\\\\mathslbb\\{I\\}/, unicode: '\\uD835\\uDD74' },\n { tex: /\\\\mathslbb\\{i\\}/, unicode: '\\uD835\\uDD8E' },\n { tex: /\\\\mathslbb\\{J\\}/, unicode: '\\uD835\\uDD75' },\n { tex: /\\\\mathslbb\\{j\\}/, unicode: '\\uD835\\uDD8F' },\n { tex: /\\\\mathslbb\\{K\\}/, unicode: '\\uD835\\uDD76' },\n { tex: /\\\\mathslbb\\{k\\}/, unicode: '\\uD835\\uDD90' },\n { tex: /\\\\mathslbb\\{L\\}/, unicode: '\\uD835\\uDD77' },\n { tex: /\\\\mathslbb\\{l\\}/, unicode: '\\uD835\\uDD91' },\n { tex: /\\\\mathslbb\\{M\\}/, unicode: '\\uD835\\uDD78' },\n { tex: /\\\\mathslbb\\{m\\}/, unicode: '\\uD835\\uDD92' },\n { tex: /\\\\mathslbb\\{N\\}/, unicode: '\\uD835\\uDD79' },\n { tex: /\\\\mathslbb\\{n\\}/, unicode: '\\uD835\\uDD93' },\n { tex: /\\\\mathslbb\\{O\\}/, unicode: '\\uD835\\uDD7A' },\n { tex: /\\\\mathslbb\\{o\\}/, unicode: '\\uD835\\uDD94' },\n { tex: /\\\\mathslbb\\{P\\}/, unicode: '\\uD835\\uDD7B' },\n { tex: /\\\\mathslbb\\{p\\}/, unicode: '\\uD835\\uDD95' },\n { tex: /\\\\mathslbb\\{Q\\}/, unicode: '\\uD835\\uDD7C' },\n { tex: /\\\\mathslbb\\{q\\}/, unicode: '\\uD835\\uDD96' },\n { tex: /\\\\mathslbb\\{R\\}/, unicode: '\\uD835\\uDD7D' },\n { tex: /\\\\mathslbb\\{r\\}/, unicode: '\\uD835\\uDD97' },\n { tex: /\\\\mathslbb\\{S\\}/, unicode: '\\uD835\\uDD7E' },\n { tex: /\\\\mathslbb\\{s\\}/, unicode: '\\uD835\\uDD98' },\n { tex: /\\\\mathslbb\\{T\\}/, unicode: '\\uD835\\uDD7F' },\n { tex: /\\\\mathslbb\\{t\\}/, unicode: '\\uD835\\uDD99' },\n { tex: /\\\\mathslbb\\{U\\}/, unicode: '\\uD835\\uDD80' },\n { tex: /\\\\mathslbb\\{u\\}/, unicode: '\\uD835\\uDD9A' },\n { tex: /\\\\mathslbb\\{V\\}/, unicode: '\\uD835\\uDD81' },\n { tex: /\\\\mathslbb\\{v\\}/, unicode: '\\uD835\\uDD9B' },\n { tex: /\\\\mathslbb\\{W\\}/, unicode: '\\uD835\\uDD82' },\n { tex: /\\\\mathslbb\\{w\\}/, unicode: '\\uD835\\uDD9C' },\n { tex: /\\\\mathslbb\\{X\\}/, unicode: '\\uD835\\uDD83' },\n { tex: /\\\\mathslbb\\{x\\}/, unicode: '\\uD835\\uDD9D' },\n { tex: /\\\\mathslbb\\{Y\\}/, unicode: '\\uD835\\uDD84' },\n { tex: /\\\\mathslbb\\{y\\}/, unicode: '\\uD835\\uDD9E' },\n { tex: /\\\\mathslbb\\{Z\\}/, unicode: '\\uD835\\uDD85' },\n { tex: /\\\\mathslbb\\{z\\}/, unicode: '\\uD835\\uDD9F' },\n\n { tex: /\\\\mathfrak\\{A\\}/, unicode: '\\uD835\\uDD04' },\n { tex: /\\\\mathfrak\\{a\\}/, unicode: '\\uD835\\uDD1E' },\n { tex: /\\\\mathfrak\\{B\\}/, unicode: '\\uD835\\uDD05' },\n { tex: /\\\\mathfrak\\{b\\}/, unicode: '\\uD835\\uDD1F' },\n { tex: /\\\\mathfrak\\{C\\}/, unicode: '\\u212D' },\n { tex: /\\\\mathfrak\\{c\\}/, unicode: '\\uD835\\uDD20' },\n { tex: /\\\\mathfrak\\{D\\}/, unicode: '\\uD835\\uDD07' },\n { tex: /\\\\mathfrak\\{d\\}/, unicode: '\\uD835\\uDD21' },\n { tex: /\\\\mathfrak\\{E\\}/, unicode: '\\uD835\\uDD08' },\n { tex: /\\\\mathfrak\\{e\\}/, unicode: '\\uD835\\uDD22' },\n { tex: /\\\\mathfrak\\{F\\}/, unicode: '\\uD835\\uDD09' },\n { tex: /\\\\mathfrak\\{f\\}/, unicode: '\\uD835\\uDD23' },\n { tex: /\\\\mathfrak\\{G\\}/, unicode: '\\uD835\\uDD0A' },\n { tex: /\\\\mathfrak\\{g\\}/, unicode: '\\uD835\\uDD24' },\n { tex: /\\\\mathfrak\\{H\\}/, unicode: '\\u210C' },\n { tex: /\\\\mathfrak\\{h\\}/, unicode: '\\uD835\\uDD25' },\n { tex: /\\\\mathfrak\\{I\\}/, unicode: '\\u2111' },\n { tex: /\\\\mathfrak\\{i\\}/, unicode: '\\uD835\\uDD26' },\n { tex: /\\\\mathfrak\\{J\\}/, unicode: '\\uD835\\uDD0D' },\n { tex: /\\\\mathfrak\\{j\\}/, unicode: '\\uD835\\uDD27' },\n { tex: /\\\\mathfrak\\{K\\}/, unicode: '\\uD835\\uDD0E' },\n { tex: /\\\\mathfrak\\{k\\}/, unicode: '\\uD835\\uDD28' },\n { tex: /\\\\mathfrak\\{L\\}/, unicode: '\\uD835\\uDD0F' },\n { tex: /\\\\mathfrak\\{l\\}/, unicode: '\\uD835\\uDD29' },\n { tex: /\\\\mathfrak\\{M\\}/, unicode: '\\uD835\\uDD10' },\n { tex: /\\\\mathfrak\\{m\\}/, unicode: '\\uD835\\uDD2A' },\n { tex: /\\\\mathfrak\\{N\\}/, unicode: '\\uD835\\uDD11' },\n { tex: /\\\\mathfrak\\{n\\}/, unicode: '\\uD835\\uDD2B' },\n { tex: /\\\\mathfrak\\{O\\}/, unicode: '\\uD835\\uDD12' },\n { tex: /\\\\mathfrak\\{o\\}/, unicode: '\\uD835\\uDD2C' },\n { tex: /\\\\mathfrak\\{P\\}/, unicode: '\\uD835\\uDD13' },\n { tex: /\\\\mathfrak\\{p\\}/, unicode: '\\uD835\\uDD2D' },\n { tex: /\\\\mathfrak\\{Q\\}/, unicode: '\\uD835\\uDD14' },\n { tex: /\\\\mathfrak\\{q\\}/, unicode: '\\uD835\\uDD2E' },\n { tex: /\\\\mathfrak\\{R\\}/, unicode: '\\u211C' },\n { tex: /\\\\mathfrak\\{r\\}/, unicode: '\\uD835\\uDD2F' },\n { tex: /\\\\mathfrak\\{S\\}/, unicode: '\\uD835\\uDD16' },\n { tex: /\\\\mathfrak\\{s\\}/, unicode: '\\uD835\\uDD30' },\n { tex: /\\\\mathfrak\\{T\\}/, unicode: '\\uD835\\uDD17' },\n { tex: /\\\\mathfrak\\{t\\}/, unicode: '\\uD835\\uDD31' },\n { tex: /\\\\mathfrak\\{U\\}/, unicode: '\\uD835\\uDD18' },\n { tex: /\\\\mathfrak\\{u\\}/, unicode: '\\uD835\\uDD32' },\n { tex: /\\\\mathfrak\\{V\\}/, unicode: '\\uD835\\uDD19' },\n { tex: /\\\\mathfrak\\{v\\}/, unicode: '\\uD835\\uDD33' },\n { tex: /\\\\mathfrak\\{W\\}/, unicode: '\\uD835\\uDD1A' },\n { tex: /\\\\mathfrak\\{w\\}/, unicode: '\\uD835\\uDD34' },\n { tex: /\\\\mathfrak\\{X\\}/, unicode: '\\uD835\\uDD1B' },\n { tex: /\\\\mathfrak\\{x\\}/, unicode: '\\uD835\\uDD35' },\n { tex: /\\\\mathfrak\\{Y\\}/, unicode: '\\uD835\\uDD1C' },\n { tex: /\\\\mathfrak\\{y\\}/, unicode: '\\uD835\\uDD36' },\n { tex: /\\\\mathfrak\\{Z\\}/, unicode: '\\u2128' },\n { tex: /\\\\mathfrak\\{z\\}/, unicode: '\\uD835\\uDD37' },\n\n { tex: /\\\\mathsfsl\\{A\\}/, unicode: '\\uD835\\uDE08' },\n { tex: /\\\\mathsfsl\\{a\\}/, unicode: '\\uD835\\uDE22' },\n { tex: /\\\\mathsfsl\\{B\\}/, unicode: '\\uD835\\uDE09' },\n { tex: /\\\\mathsfsl\\{b\\}/, unicode: '\\uD835\\uDE23' },\n { tex: /\\\\mathsfsl\\{C\\}/, unicode: '\\uD835\\uDE0A' },\n { tex: /\\\\mathsfsl\\{c\\}/, unicode: '\\uD835\\uDE24' },\n { tex: /\\\\mathsfsl\\{D\\}/, unicode: '\\uD835\\uDE0B' },\n { tex: /\\\\mathsfsl\\{d\\}/, unicode: '\\uD835\\uDE25' },\n { tex: /\\\\mathsfsl\\{E\\}/, unicode: '\\uD835\\uDE0C' },\n { tex: /\\\\mathsfsl\\{e\\}/, unicode: '\\uD835\\uDE26' },\n { tex: /\\\\mathsfsl\\{F\\}/, unicode: '\\uD835\\uDE0D' },\n { tex: /\\\\mathsfsl\\{f\\}/, unicode: '\\uD835\\uDE27' },\n { tex: /\\\\mathsfsl\\{G\\}/, unicode: '\\uD835\\uDE0E' },\n { tex: /\\\\mathsfsl\\{g\\}/, unicode: '\\uD835\\uDE28' },\n { tex: /\\\\mathsfsl\\{H\\}/, unicode: '\\uD835\\uDE0F' },\n { tex: /\\\\mathsfsl\\{h\\}/, unicode: '\\uD835\\uDE29' },\n { tex: /\\\\mathsfsl\\{I\\}/, unicode: '\\uD835\\uDE10' },\n { tex: /\\\\mathsfsl\\{i\\}/, unicode: '\\uD835\\uDE2A' },\n { tex: /\\\\mathsfsl\\{J\\}/, unicode: '\\uD835\\uDE11' },\n { tex: /\\\\mathsfsl\\{j\\}/, unicode: '\\uD835\\uDE2B' },\n { tex: /\\\\mathsfsl\\{K\\}/, unicode: '\\uD835\\uDE12' },\n { tex: /\\\\mathsfsl\\{k\\}/, unicode: '\\uD835\\uDE2C' },\n { tex: /\\\\mathsfsl\\{L\\}/, unicode: '\\uD835\\uDE13' },\n { tex: /\\\\mathsfsl\\{l\\}/, unicode: '\\uD835\\uDE2D' },\n { tex: /\\\\mathsfsl\\{M\\}/, unicode: '\\uD835\\uDE14' },\n { tex: /\\\\mathsfsl\\{m\\}/, unicode: '\\uD835\\uDE2E' },\n { tex: /\\\\mathsfsl\\{N\\}/, unicode: '\\uD835\\uDE15' },\n { tex: /\\\\mathsfsl\\{n\\}/, unicode: '\\uD835\\uDE2F' },\n { tex: /\\\\mathsfsl\\{O\\}/, unicode: '\\uD835\\uDE16' },\n { tex: /\\\\mathsfsl\\{o\\}/, unicode: '\\uD835\\uDE30' },\n { tex: /\\\\mathsfsl\\{P\\}/, unicode: '\\uD835\\uDE17' },\n { tex: /\\\\mathsfsl\\{p\\}/, unicode: '\\uD835\\uDE31' },\n { tex: /\\\\mathsfsl\\{Q\\}/, unicode: '\\uD835\\uDE18' },\n { tex: /\\\\mathsfsl\\{q\\}/, unicode: '\\uD835\\uDE32' },\n { tex: /\\\\mathsfsl\\{R\\}/, unicode: '\\uD835\\uDE19' },\n { tex: /\\\\mathsfsl\\{r\\}/, unicode: '\\uD835\\uDE33' },\n { tex: /\\\\mathsfsl\\{S\\}/, unicode: '\\uD835\\uDE1A' },\n { tex: /\\\\mathsfsl\\{s\\}/, unicode: '\\uD835\\uDE34' },\n { tex: /\\\\mathsfsl\\{T\\}/, unicode: '\\uD835\\uDE1B' },\n { tex: /\\\\mathsfsl\\{t\\}/, unicode: '\\uD835\\uDE35' },\n { tex: /\\\\mathsfsl\\{U\\}/, unicode: '\\uD835\\uDE1C' },\n { tex: /\\\\mathsfsl\\{u\\}/, unicode: '\\uD835\\uDE36' },\n { tex: /\\\\mathsfsl\\{V\\}/, unicode: '\\uD835\\uDE1D' },\n { tex: /\\\\mathsfsl\\{v\\}/, unicode: '\\uD835\\uDE37' },\n { tex: /\\\\mathsfsl\\{W\\}/, unicode: '\\uD835\\uDE1E' },\n { tex: /\\\\mathsfsl\\{w\\}/, unicode: '\\uD835\\uDE38' },\n { tex: /\\\\mathsfsl\\{X\\}/, unicode: '\\uD835\\uDE1F' },\n { tex: /\\\\mathsfsl\\{x\\}/, unicode: '\\uD835\\uDE39' },\n { tex: /\\\\mathsfsl\\{Y\\}/, unicode: '\\uD835\\uDE20' },\n { tex: /\\\\mathsfsl\\{y\\}/, unicode: '\\uD835\\uDE3A' },\n { tex: /\\\\mathsfsl\\{Z\\}/, unicode: '\\uD835\\uDE21' },\n { tex: /\\\\mathsfsl\\{z\\}/, unicode: '\\uD835\\uDE3B' },\n\n { tex: /\\\\mathscr\\{A\\}/, unicode: '\\uD835\\uDC9C' },\n { tex: /\\\\mathscr\\{a\\}/, unicode: '\\uD835\\uDCB6' },\n { tex: /\\\\mathscr\\{B\\}/, unicode: '\\u212C' },\n { tex: /\\\\mathscr\\{b\\}/, unicode: '\\uD835\\uDCB7' },\n { tex: /\\\\mathscr\\{C\\}/, unicode: '\\uD835\\uDC9E' },\n { tex: /\\\\mathscr\\{c\\}/, unicode: '\\uD835\\uDCB8' },\n { tex: /\\\\mathscr\\{D\\}/, unicode: '\\uD835\\uDC9F' },\n { tex: /\\\\mathscr\\{d\\}/, unicode: '\\uD835\\uDCB9' },\n { tex: /\\\\mathscr\\{e\\}/, unicode: '\\u212F' },\n { tex: /\\\\mathscr\\{E\\}/, unicode: '\\u2130' },\n { tex: /\\\\mathscr\\{F\\}/, unicode: '\\u2131' },\n { tex: /\\\\mathscr\\{f\\}/, unicode: '\\uD835\\uDCBB' },\n { tex: /\\\\mathscr\\{g\\}/, unicode: '\\u210A' },\n { tex: /\\\\mathscr\\{G\\}/, unicode: '\\uD835\\uDCA2' },\n { tex: /\\\\mathscr\\{H\\}/, unicode: '\\u210B' },\n { tex: /\\\\mathscr\\{h\\}/, unicode: '\\uD835\\uDCBD' },\n { tex: /\\\\mathscr\\{I\\}/, unicode: '\\u2110' },\n { tex: /\\\\mathscr\\{i\\}/, unicode: '\\uD835\\uDCBE' },\n { tex: /\\\\mathscr\\{J\\}/, unicode: '\\uD835\\uDCA5' },\n { tex: /\\\\mathscr\\{j\\}/, unicode: '\\uD835\\uDCBF' },\n { tex: /\\\\mathscr\\{K\\}/, unicode: '\\uD835\\uDCA6' },\n { tex: /\\\\mathscr\\{k\\}/, unicode: '\\uD835\\uDCC0' },\n { tex: /\\\\mathscr\\{L\\}/, unicode: '\\u2112' },\n { tex: /\\\\mathscr\\{l\\}/, unicode: '\\u2113' },\n { tex: /\\\\mathscr\\{M\\}/, unicode: '\\u2133' },\n { tex: /\\\\mathscr\\{m\\}/, unicode: '\\uD835\\uDCC2' },\n { tex: /\\\\mathscr\\{N\\}/, unicode: '\\uD835\\uDCA9' },\n { tex: /\\\\mathscr\\{n\\}/, unicode: '\\uD835\\uDCC3' },\n { tex: /\\\\mathscr\\{o\\}/, unicode: '\\u2134' },\n { tex: /\\\\mathscr\\{O\\}/, unicode: '\\uD835\\uDCAA' },\n { tex: /\\\\mathscr\\{P\\}/, unicode: '\\uD835\\uDCAB' },\n { tex: /\\\\mathscr\\{p\\}/, unicode: '\\uD835\\uDCC5' },\n { tex: /\\\\mathscr\\{Q\\}/, unicode: '\\uD835\\uDCAC' },\n { tex: /\\\\mathscr\\{q\\}/, unicode: '\\uD835\\uDCC6' },\n { tex: /\\\\mathscr\\{R\\}/, unicode: '\\u211B' },\n { tex: /\\\\mathscr\\{r\\}/, unicode: '\\uD835\\uDCC7' },\n { tex: /\\\\mathscr\\{S\\}/, unicode: '\\uD835\\uDCAE' },\n { tex: /\\\\mathscr\\{s\\}/, unicode: '\\uD835\\uDCC8' },\n { tex: /\\\\mathscr\\{T\\}/, unicode: '\\uD835\\uDCAF' },\n { tex: /\\\\mathscr\\{t\\}/, unicode: '\\uD835\\uDCC9' },\n { tex: /\\\\mathscr\\{U\\}/, unicode: '\\uD835\\uDCB0' },\n { tex: /\\\\mathscr\\{u\\}/, unicode: '\\uD835\\uDCCA' },\n { tex: /\\\\mathscr\\{V\\}/, unicode: '\\uD835\\uDCB1' },\n { tex: /\\\\mathscr\\{v\\}/, unicode: '\\uD835\\uDCCB' },\n { tex: /\\\\mathscr\\{W\\}/, unicode: '\\uD835\\uDCB2' },\n { tex: /\\\\mathscr\\{w\\}/, unicode: '\\uD835\\uDCCC' },\n { tex: /\\\\mathscr\\{X\\}/, unicode: '\\uD835\\uDCB3' },\n { tex: /\\\\mathscr\\{x\\}/, unicode: '\\uD835\\uDCCD' },\n { tex: /\\\\mathscr\\{Y\\}/, unicode: '\\uD835\\uDCB4' },\n { tex: /\\\\mathscr\\{y\\}/, unicode: '\\uD835\\uDCCE' },\n { tex: /\\\\mathscr\\{Z\\}/, unicode: '\\uD835\\uDCB5' },\n { tex: /\\\\mathscr\\{z\\}/, unicode: '\\uD835\\uDCCF' },\n\n { tex: /\\\\mathmit\\{A\\}/, unicode: '\\uD835\\uDCD0' },\n { tex: /\\\\mathmit\\{a\\}/, unicode: '\\uD835\\uDCEA' },\n { tex: /\\\\mathmit\\{B\\}/, unicode: '\\uD835\\uDCD1' },\n { tex: /\\\\mathmit\\{b\\}/, unicode: '\\uD835\\uDCEB' },\n { tex: /\\\\mathmit\\{C\\}/, unicode: '\\uD835\\uDCD2' },\n { tex: /\\\\mathmit\\{c\\}/, unicode: '\\uD835\\uDCEC' },\n { tex: /\\\\mathmit\\{D\\}/, unicode: '\\uD835\\uDCD3' },\n { tex: /\\\\mathmit\\{d\\}/, unicode: '\\uD835\\uDCED' },\n { tex: /\\\\mathmit\\{E\\}/, unicode: '\\uD835\\uDCD4' },\n { tex: /\\\\mathmit\\{e\\}/, unicode: '\\uD835\\uDCEE' },\n { tex: /\\\\mathmit\\{F\\}/, unicode: '\\uD835\\uDCD5' },\n { tex: /\\\\mathmit\\{f\\}/, unicode: '\\uD835\\uDCEF' },\n { tex: /\\\\mathmit\\{G\\}/, unicode: '\\uD835\\uDCD6' },\n { tex: /\\\\mathmit\\{g\\}/, unicode: '\\uD835\\uDCF0' },\n { tex: /\\\\mathmit\\{H\\}/, unicode: '\\uD835\\uDCD7' },\n { tex: /\\\\mathmit\\{h\\}/, unicode: '\\uD835\\uDCF1' },\n { tex: /\\\\mathmit\\{I\\}/, unicode: '\\uD835\\uDCD8' },\n { tex: /\\\\mathmit\\{i\\}/, unicode: '\\uD835\\uDCF2' },\n { tex: /\\\\mathmit\\{J\\}/, unicode: '\\uD835\\uDCD9' },\n { tex: /\\\\mathmit\\{j\\}/, unicode: '\\uD835\\uDCF3' },\n { tex: /\\\\mathmit\\{K\\}/, unicode: '\\uD835\\uDCDA' },\n { tex: /\\\\mathmit\\{k\\}/, unicode: '\\uD835\\uDCF4' },\n { tex: /\\\\mathmit\\{L\\}/, unicode: '\\uD835\\uDCDB' },\n { tex: /\\\\mathmit\\{l\\}/, unicode: '\\uD835\\uDCF5' },\n { tex: /\\\\mathmit\\{M\\}/, unicode: '\\uD835\\uDCDC' },\n { tex: /\\\\mathmit\\{m\\}/, unicode: '\\uD835\\uDCF6' },\n { tex: /\\\\mathmit\\{N\\}/, unicode: '\\uD835\\uDCDD' },\n { tex: /\\\\mathmit\\{n\\}/, unicode: '\\uD835\\uDCF7' },\n { tex: /\\\\mathmit\\{O\\}/, unicode: '\\uD835\\uDCDE' },\n { tex: /\\\\mathmit\\{o\\}/, unicode: '\\uD835\\uDCF8' },\n { tex: /\\\\mathmit\\{P\\}/, unicode: '\\uD835\\uDCDF' },\n { tex: /\\\\mathmit\\{p\\}/, unicode: '\\uD835\\uDCF9' },\n { tex: /\\\\mathmit\\{Q\\}/, unicode: '\\uD835\\uDCE0' },\n { tex: /\\\\mathmit\\{q\\}/, unicode: '\\uD835\\uDCFA' },\n { tex: /\\\\mathmit\\{R\\}/, unicode: '\\uD835\\uDCE1' },\n { tex: /\\\\mathmit\\{r\\}/, unicode: '\\uD835\\uDCFB' },\n { tex: /\\\\mathmit\\{S\\}/, unicode: '\\uD835\\uDCE2' },\n { tex: /\\\\mathmit\\{s\\}/, unicode: '\\uD835\\uDCFC' },\n { tex: /\\\\mathmit\\{T\\}/, unicode: '\\uD835\\uDCE3' },\n { tex: /\\\\mathmit\\{t\\}/, unicode: '\\uD835\\uDCFD' },\n { tex: /\\\\mathmit\\{U\\}/, unicode: '\\uD835\\uDCE4' },\n { tex: /\\\\mathmit\\{u\\}/, unicode: '\\uD835\\uDCFE' },\n { tex: /\\\\mathmit\\{V\\}/, unicode: '\\uD835\\uDCE5' },\n { tex: /\\\\mathmit\\{v\\}/, unicode: '\\uD835\\uDCFF' },\n { tex: /\\\\mathmit\\{W\\}/, unicode: '\\uD835\\uDCE6' },\n { tex: /\\\\mathmit\\{w\\}/, unicode: '\\uD835\\uDD00' },\n { tex: /\\\\mathmit\\{X\\}/, unicode: '\\uD835\\uDCE7' },\n { tex: /\\\\mathmit\\{x\\}/, unicode: '\\uD835\\uDD01' },\n { tex: /\\\\mathmit\\{Y\\}/, unicode: '\\uD835\\uDCE8' },\n { tex: /\\\\mathmit\\{y\\}/, unicode: '\\uD835\\uDD02' },\n { tex: /\\\\mathmit\\{Z\\}/, unicode: '\\uD835\\uDCE9' },\n { tex: /\\\\mathmit\\{z\\}/, unicode: '\\uD835\\uDD03' },\n\n { tex: /\\\\mathtt\\{0\\}/, unicode: '\\uD835\\uDFF6' },\n { tex: /\\\\mathtt\\{1\\}/, unicode: '\\uD835\\uDFF7' },\n { tex: /\\\\mathtt\\{2\\}/, unicode: '\\uD835\\uDFF8' },\n { tex: /\\\\mathtt\\{3\\}/, unicode: '\\uD835\\uDFF9' },\n { tex: /\\\\mathtt\\{4\\}/, unicode: '\\uD835\\uDFFA' },\n { tex: /\\\\mathtt\\{5\\}/, unicode: '\\uD835\\uDFFB' },\n { tex: /\\\\mathtt\\{6\\}/, unicode: '\\uD835\\uDFFC' },\n { tex: /\\\\mathtt\\{7\\}/, unicode: '\\uD835\\uDFFD' },\n { tex: /\\\\mathtt\\{8\\}/, unicode: '\\uD835\\uDFFE' },\n { tex: /\\\\mathtt\\{9\\}/, unicode: '\\uD835\\uDFFF' },\n { tex: /\\\\mathtt\\{A\\}/, unicode: '\\uD835\\uDE70' },\n { tex: /\\\\mathtt\\{a\\}/, unicode: '\\uD835\\uDE8A' },\n { tex: /\\\\mathtt\\{B\\}/, unicode: '\\uD835\\uDE71' },\n { tex: /\\\\mathtt\\{b\\}/, unicode: '\\uD835\\uDE8B' },\n { tex: /\\\\mathtt\\{C\\}/, unicode: '\\uD835\\uDE72' },\n { tex: /\\\\mathtt\\{c\\}/, unicode: '\\uD835\\uDE8C' },\n { tex: /\\\\mathtt\\{D\\}/, unicode: '\\uD835\\uDE73' },\n { tex: /\\\\mathtt\\{d\\}/, unicode: '\\uD835\\uDE8D' },\n { tex: /\\\\mathtt\\{E\\}/, unicode: '\\uD835\\uDE74' },\n { tex: /\\\\mathtt\\{e\\}/, unicode: '\\uD835\\uDE8E' },\n { tex: /\\\\mathtt\\{F\\}/, unicode: '\\uD835\\uDE75' },\n { tex: /\\\\mathtt\\{f\\}/, unicode: '\\uD835\\uDE8F' },\n { tex: /\\\\mathtt\\{G\\}/, unicode: '\\uD835\\uDE76' },\n { tex: /\\\\mathtt\\{g\\}/, unicode: '\\uD835\\uDE90' },\n { tex: /\\\\mathtt\\{H\\}/, unicode: '\\uD835\\uDE77' },\n { tex: /\\\\mathtt\\{h\\}/, unicode: '\\uD835\\uDE91' },\n { tex: /\\\\mathtt\\{I\\}/, unicode: '\\uD835\\uDE78' },\n { tex: /\\\\mathtt\\{i\\}/, unicode: '\\uD835\\uDE92' },\n { tex: /\\\\mathtt\\{J\\}/, unicode: '\\uD835\\uDE79' },\n { tex: /\\\\mathtt\\{j\\}/, unicode: '\\uD835\\uDE93' },\n { tex: /\\\\mathtt\\{K\\}/, unicode: '\\uD835\\uDE7A' },\n { tex: /\\\\mathtt\\{k\\}/, unicode: '\\uD835\\uDE94' },\n { tex: /\\\\mathtt\\{L\\}/, unicode: '\\uD835\\uDE7B' },\n { tex: /\\\\mathtt\\{l\\}/, unicode: '\\uD835\\uDE95' },\n { tex: /\\\\mathtt\\{M\\}/, unicode: '\\uD835\\uDE7C' },\n { tex: /\\\\mathtt\\{m\\}/, unicode: '\\uD835\\uDE96' },\n { tex: /\\\\mathtt\\{N\\}/, unicode: '\\uD835\\uDE7D' },\n { tex: /\\\\mathtt\\{n\\}/, unicode: '\\uD835\\uDE97' },\n { tex: /\\\\mathtt\\{O\\}/, unicode: '\\uD835\\uDE7E' },\n { tex: /\\\\mathtt\\{o\\}/, unicode: '\\uD835\\uDE98' },\n { tex: /\\\\mathtt\\{P\\}/, unicode: '\\uD835\\uDE7F' },\n { tex: /\\\\mathtt\\{p\\}/, unicode: '\\uD835\\uDE99' },\n { tex: /\\\\mathtt\\{Q\\}/, unicode: '\\uD835\\uDE80' },\n { tex: /\\\\mathtt\\{q\\}/, unicode: '\\uD835\\uDE9A' },\n { tex: /\\\\mathtt\\{R\\}/, unicode: '\\uD835\\uDE81' },\n { tex: /\\\\mathtt\\{r\\}/, unicode: '\\uD835\\uDE9B' },\n { tex: /\\\\mathtt\\{S\\}/, unicode: '\\uD835\\uDE82' },\n { tex: /\\\\mathtt\\{s\\}/, unicode: '\\uD835\\uDE9C' },\n { tex: /\\\\mathtt\\{T\\}/, unicode: '\\uD835\\uDE83' },\n { tex: /\\\\mathtt\\{t\\}/, unicode: '\\uD835\\uDE9D' },\n { tex: /\\\\mathtt\\{U\\}/, unicode: '\\uD835\\uDE84' },\n { tex: /\\\\mathtt\\{u\\}/, unicode: '\\uD835\\uDE9E' },\n { tex: /\\\\mathtt\\{V\\}/, unicode: '\\uD835\\uDE85' },\n { tex: /\\\\mathtt\\{v\\}/, unicode: '\\uD835\\uDE9F' },\n { tex: /\\\\mathtt\\{W\\}/, unicode: '\\uD835\\uDE86' },\n { tex: /\\\\mathtt\\{w\\}/, unicode: '\\uD835\\uDEA0' },\n { tex: /\\\\mathtt\\{X\\}/, unicode: '\\uD835\\uDE87' },\n { tex: /\\\\mathtt\\{x\\}/, unicode: '\\uD835\\uDEA1' },\n { tex: /\\\\mathtt\\{Y\\}/, unicode: '\\uD835\\uDE88' },\n { tex: /\\\\mathtt\\{y\\}/, unicode: '\\uD835\\uDEA2' },\n { tex: /\\\\mathtt\\{Z\\}/, unicode: '\\uD835\\uDE89' },\n { tex: /\\\\mathtt\\{z\\}/, unicode: '\\uD835\\uDEA3' },\n\n { tex: /\\\\mathsf\\{0\\}/, unicode: '\\uD835\\uDFE2' },\n { tex: /\\\\mathsf\\{1\\}/, unicode: '\\uD835\\uDFE3' },\n { tex: /\\\\mathsf\\{2\\}/, unicode: '\\uD835\\uDFE4' },\n { tex: /\\\\mathsf\\{3\\}/, unicode: '\\uD835\\uDFE5' },\n { tex: /\\\\mathsf\\{4\\}/, unicode: '\\uD835\\uDFE6' },\n { tex: /\\\\mathsf\\{5\\}/, unicode: '\\uD835\\uDFE7' },\n { tex: /\\\\mathsf\\{6\\}/, unicode: '\\uD835\\uDFE8' },\n { tex: /\\\\mathsf\\{7\\}/, unicode: '\\uD835\\uDFE9' },\n { tex: /\\\\mathsf\\{8\\}/, unicode: '\\uD835\\uDFEA' },\n { tex: /\\\\mathsf\\{9\\}/, unicode: '\\uD835\\uDFEB' },\n { tex: /\\\\mathsf\\{A\\}/, unicode: '\\uD835\\uDDA0' },\n { tex: /\\\\mathsf\\{a\\}/, unicode: '\\uD835\\uDDBA' },\n { tex: /\\\\mathsf\\{B\\}/, unicode: '\\uD835\\uDDA1' },\n { tex: /\\\\mathsf\\{b\\}/, unicode: '\\uD835\\uDDBB' },\n { tex: /\\\\mathsf\\{C\\}/, unicode: '\\uD835\\uDDA2' },\n { tex: /\\\\mathsf\\{c\\}/, unicode: '\\uD835\\uDDBC' },\n { tex: /\\\\mathsf\\{D\\}/, unicode: '\\uD835\\uDDA3' },\n { tex: /\\\\mathsf\\{d\\}/, unicode: '\\uD835\\uDDBD' },\n { tex: /\\\\mathsf\\{E\\}/, unicode: '\\uD835\\uDDA4' },\n { tex: /\\\\mathsf\\{e\\}/, unicode: '\\uD835\\uDDBE' },\n { tex: /\\\\mathsf\\{F\\}/, unicode: '\\uD835\\uDDA5' },\n { tex: /\\\\mathsf\\{f\\}/, unicode: '\\uD835\\uDDBF' },\n { tex: /\\\\mathsf\\{G\\}/, unicode: '\\uD835\\uDDA6' },\n { tex: /\\\\mathsf\\{g\\}/, unicode: '\\uD835\\uDDC0' },\n { tex: /\\\\mathsf\\{H\\}/, unicode: '\\uD835\\uDDA7' },\n { tex: /\\\\mathsf\\{h\\}/, unicode: '\\uD835\\uDDC1' },\n { tex: /\\\\mathsf\\{I\\}/, unicode: '\\uD835\\uDDA8' },\n { tex: /\\\\mathsf\\{i\\}/, unicode: '\\uD835\\uDDC2' },\n { tex: /\\\\mathsf\\{J\\}/, unicode: '\\uD835\\uDDA9' },\n { tex: /\\\\mathsf\\{j\\}/, unicode: '\\uD835\\uDDC3' },\n { tex: /\\\\mathsf\\{K\\}/, unicode: '\\uD835\\uDDAA' },\n { tex: /\\\\mathsf\\{k\\}/, unicode: '\\uD835\\uDDC4' },\n { tex: /\\\\mathsf\\{L\\}/, unicode: '\\uD835\\uDDAB' },\n { tex: /\\\\mathsf\\{l\\}/, unicode: '\\uD835\\uDDC5' },\n { tex: /\\\\mathsf\\{M\\}/, unicode: '\\uD835\\uDDAC' },\n { tex: /\\\\mathsf\\{m\\}/, unicode: '\\uD835\\uDDC6' },\n { tex: /\\\\mathsf\\{N\\}/, unicode: '\\uD835\\uDDAD' },\n { tex: /\\\\mathsf\\{n\\}/, unicode: '\\uD835\\uDDC7' },\n { tex: /\\\\mathsf\\{O\\}/, unicode: '\\uD835\\uDDAE' },\n { tex: /\\\\mathsf\\{o\\}/, unicode: '\\uD835\\uDDC8' },\n { tex: /\\\\mathsf\\{P\\}/, unicode: '\\uD835\\uDDAF' },\n { tex: /\\\\mathsf\\{p\\}/, unicode: '\\uD835\\uDDC9' },\n { tex: /\\\\mathsf\\{Q\\}/, unicode: '\\uD835\\uDDB0' },\n { tex: /\\\\mathsf\\{q\\}/, unicode: '\\uD835\\uDDCA' },\n { tex: /\\\\mathsf\\{R\\}/, unicode: '\\uD835\\uDDB1' },\n { tex: /\\\\mathsf\\{r\\}/, unicode: '\\uD835\\uDDCB' },\n { tex: /\\\\mathsf\\{S\\}/, unicode: '\\uD835\\uDDB2' },\n { tex: /\\\\mathsf\\{s\\}/, unicode: '\\uD835\\uDDCC' },\n { tex: /\\\\mathsf\\{T\\}/, unicode: '\\uD835\\uDDB3' },\n { tex: /\\\\mathsf\\{t\\}/, unicode: '\\uD835\\uDDCD' },\n { tex: /\\\\mathsf\\{U\\}/, unicode: '\\uD835\\uDDB4' },\n { tex: /\\\\mathsf\\{u\\}/, unicode: '\\uD835\\uDDCE' },\n { tex: /\\\\mathsf\\{V\\}/, unicode: '\\uD835\\uDDB5' },\n { tex: /\\\\mathsf\\{v\\}/, unicode: '\\uD835\\uDDCF' },\n { tex: /\\\\mathsf\\{W\\}/, unicode: '\\uD835\\uDDB6' },\n { tex: /\\\\mathsf\\{w\\}/, unicode: '\\uD835\\uDDD0' },\n { tex: /\\\\mathsf\\{X\\}/, unicode: '\\uD835\\uDDB7' },\n { tex: /\\\\mathsf\\{x\\}/, unicode: '\\uD835\\uDDD1' },\n { tex: /\\\\mathsf\\{Y\\}/, unicode: '\\uD835\\uDDB8' },\n { tex: /\\\\mathsf\\{y\\}/, unicode: '\\uD835\\uDDD2' },\n { tex: /\\\\mathsf\\{Z\\}/, unicode: '\\uD835\\uDDB9' },\n { tex: /\\\\mathsf\\{z\\}/, unicode: '\\uD835\\uDDD3' },\n\n { tex: /\\\\mathchar\"2208/, unicode: '\\u2316' },\n\n { tex: /\\\\cyrchar\\\\C/, unicode: '\\u030F' },\n { tex: /\\\\cyrchar\\\\CYRABHCHDSC/, unicode: '\\u04BE' },\n { tex: /\\\\cyrchar\\\\cyrabhchdsc/, unicode: '\\u04BF' },\n { tex: /\\\\cyrchar\\\\CYRABHCH/, unicode: '\\u04BC' },\n { tex: /\\\\cyrchar\\\\cyrabhch/, unicode: '\\u04BD' },\n { tex: /\\\\cyrchar\\\\CYRABHDZE/, unicode: '\\u04E0' },\n { tex: /\\\\cyrchar\\\\cyrabhdze/, unicode: '\\u04E1' },\n { tex: /\\\\cyrchar\\\\CYRABHHA/, unicode: '\\u04A8' },\n { tex: /\\\\cyrchar\\\\cyrabhha/, unicode: '\\u04A9' },\n { tex: /\\\\cyrchar\\\\CYRAE/, unicode: '\\u04D4' },\n { tex: /\\\\cyrchar\\\\cyrae/, unicode: '\\u04D5' },\n { tex: /\\\\cyrchar\\\\CYRA/, unicode: '\\u0410' },\n { tex: /\\\\cyrchar\\\\cyra/, unicode: '\\u0430' },\n { tex: /\\\\cyrchar\\\\CYRB/, unicode: '\\u0411' },\n { tex: /\\\\cyrchar\\\\cyrb/, unicode: '\\u0431' },\n { tex: /\\\\cyrchar\\\\CYRBYUS/, unicode: '\\u046A' },\n { tex: /\\\\cyrchar\\\\CYRCHLDSC/, unicode: '\\u04CB' },\n { tex: /\\\\cyrchar\\\\cyrchldsc/, unicode: '\\u04CC' },\n { tex: /\\\\cyrchar\\\\CYRCHRDSC/, unicode: '\\u04B6' },\n { tex: /\\\\cyrchar\\\\cyrchrdsc/, unicode: '\\u04B7' },\n { tex: /\\\\cyrchar\\\\CYRCH/, unicode: '\\u0427' },\n { tex: /\\\\cyrchar\\\\cyrch/, unicode: '\\u0447' },\n { tex: /\\\\cyrchar\\\\CYRCHVCRS/, unicode: '\\u04B8' },\n { tex: /\\\\cyrchar\\\\cyrchvcrs/, unicode: '\\u04B9' },\n { tex: /\\\\cyrchar\\\\CYRC/, unicode: '\\u0426' },\n { tex: /\\\\cyrchar\\\\cyrc/, unicode: '\\u0446' },\n { tex: /\\\\cyrchar\\\\CYRDJE/, unicode: '\\u0402' },\n { tex: /\\\\cyrchar\\\\cyrdje/, unicode: '\\u0452' },\n { tex: /\\\\cyrchar\\\\CYRD/, unicode: '\\u0414' },\n { tex: /\\\\cyrchar\\\\cyrd/, unicode: '\\u0434' },\n { tex: /\\\\cyrchar\\\\CYRDZE/, unicode: '\\u0405' },\n { tex: /\\\\cyrchar\\\\cyrdze/, unicode: '\\u0455' },\n { tex: /\\\\cyrchar\\\\CYRDZHE/, unicode: '\\u040F' },\n { tex: /\\\\cyrchar\\\\cyrdzhe/, unicode: '\\u045F' },\n { tex: /\\\\cyrchar\\\\CYREREV/, unicode: '\\u042D' },\n { tex: /\\\\cyrchar\\\\cyrerev/, unicode: '\\u044D' },\n { tex: /\\\\cyrchar\\\\CYRERY/, unicode: '\\u042B' },\n { tex: /\\\\cyrchar\\\\cyrery/, unicode: '\\u044B' },\n { tex: /\\\\cyrchar\\\\CYRE/, unicode: '\\u0415' },\n { tex: /\\\\cyrchar\\\\cyre/, unicode: '\\u0435' },\n { tex: /\\\\cyrchar\\\\CYRFITA/, unicode: '\\u0472' },\n { tex: /\\\\cyrchar\\\\CYRF/, unicode: '\\u0424' },\n { tex: /\\\\cyrchar\\\\cyrf/, unicode: '\\u0444' },\n { tex: /\\\\cyrchar\\\\CYRGHCRS/, unicode: '\\u0492' },\n { tex: /\\\\cyrchar\\\\cyrghcrs/, unicode: '\\u0493' },\n { tex: /\\\\cyrchar\\\\CYRGHK/, unicode: '\\u0494' },\n { tex: /\\\\cyrchar\\\\cyrghk/, unicode: '\\u0495' },\n { tex: /\\\\cyrchar\\{\\\\'\\\\CYRG\\}/, unicode: '\\u0403' },\n { tex: /\\\\cyrchar\\\\CYRG/, unicode: '\\u0413' },\n { tex: /\\\\cyrchar\\\\cyrg/, unicode: '\\u0433' },\n { tex: /\\\\cyrchar\\{\\\\'\\\\cyrg\\}/, unicode: '\\u0453' },\n { tex: /\\\\cyrchar\\\\CYRGUP/, unicode: '\\u0490' },\n { tex: /\\\\cyrchar\\\\cyrgup/, unicode: '\\u0491' },\n { tex: /\\\\cyrchar\\\\CYRHDSC/, unicode: '\\u04B2' },\n { tex: /\\\\cyrchar\\\\cyrhdsc/, unicode: '\\u04B3' },\n { tex: /\\\\cyrchar\\\\CYRHRDSN/, unicode: '\\u042A' },\n { tex: /\\\\cyrchar\\\\cyrhrdsn/, unicode: '\\u044A' },\n { tex: /\\\\cyrchar\\\\cyrhundredthousands/, unicode: '\\u0488' },\n { tex: /\\\\cyrchar\\\\CYRH/, unicode: '\\u0425' },\n { tex: /\\\\cyrchar\\\\cyrh/, unicode: '\\u0445' },\n { tex: /\\\\cyrchar\\\\CYRIE/, unicode: '\\u0404' },\n { tex: /\\\\cyrchar\\\\cyrie/, unicode: '\\u0454' },\n { tex: /\\\\cyrchar\\\\CYRII/, unicode: '\\u0406' },\n { tex: /\\\\cyrchar\\\\cyrii/, unicode: '\\u0456' },\n { tex: /\\\\cyrchar\\\\CYRIOTBYUS/, unicode: '\\u046C' },\n { tex: /\\\\cyrchar\\\\cyriotbyus/, unicode: '\\u046D' },\n { tex: /\\\\cyrchar\\\\CYRIOTE/, unicode: '\\u0464' },\n { tex: /\\\\cyrchar\\\\cyriote/, unicode: '\\u0465' },\n { tex: /\\\\cyrchar\\\\CYRIOTLYUS/, unicode: '\\u0468' },\n { tex: /\\\\cyrchar\\\\cyriotlyus/, unicode: '\\u0469' },\n { tex: /\\\\cyrchar\\\\CYRISHRT/, unicode: '\\u0419' },\n { tex: /\\\\cyrchar\\\\cyrishrt/, unicode: '\\u0439' },\n { tex: /\\\\cyrchar\\\\CYRI/, unicode: '\\u0418' },\n { tex: /\\\\cyrchar\\\\cyri/, unicode: '\\u0438' },\n { tex: /\\\\cyrchar\\\\CYRIZH/, unicode: '\\u0474' },\n { tex: /\\\\cyrchar\\\\CYRJE/, unicode: '\\u0408' },\n { tex: /\\\\cyrchar\\\\cyrje/, unicode: '\\u0458' },\n { tex: /\\\\cyrchar\\\\CYRKBEAK/, unicode: '\\u04A0' },\n { tex: /\\\\cyrchar\\\\cyrkbeak/, unicode: '\\u04A1' },\n { tex: /\\\\cyrchar\\\\CYRKDSC/, unicode: '\\u049A' },\n { tex: /\\\\cyrchar\\\\cyrkdsc/, unicode: '\\u049B' },\n { tex: /\\\\cyrchar\\\\CYRKHCRS/, unicode: '\\u049E' },\n { tex: /\\\\cyrchar\\\\cyrkhcrs/, unicode: '\\u049F' },\n { tex: /\\\\cyrchar\\\\CYRKHK/, unicode: '\\u04C3' },\n { tex: /\\\\cyrchar\\\\cyrkhk/, unicode: '\\u04C4' },\n { tex: /\\\\cyrchar\\\\CYRKOPPA/, unicode: '\\u0480' },\n { tex: /\\\\cyrchar\\\\cyrkoppa/, unicode: '\\u0481' },\n { tex: /\\\\cyrchar\\\\CYRKSI/, unicode: '\\u046E' },\n { tex: /\\\\cyrchar\\\\cyrksi/, unicode: '\\u046F' },\n { tex: /\\\\cyrchar\\{\\\\'\\\\CYRK\\}/, unicode: '\\u040C' },\n { tex: /\\\\cyrchar\\\\CYRK/, unicode: '\\u041A' },\n { tex: /\\\\cyrchar\\\\cyrk/, unicode: '\\u043A' },\n { tex: /\\\\cyrchar\\{\\\\'\\\\cyrk\\}/, unicode: '\\u045C' },\n { tex: /\\\\cyrchar\\\\CYRKVCRS/, unicode: '\\u049C' },\n { tex: /\\\\cyrchar\\\\cyrkvcrs/, unicode: '\\u049D' },\n { tex: /\\\\cyrchar\\\\CYRLJE/, unicode: '\\u0409' },\n { tex: /\\\\cyrchar\\\\cyrlje/, unicode: '\\u0459' },\n { tex: /\\\\cyrchar\\\\CYRL/, unicode: '\\u041B' },\n { tex: /\\\\cyrchar\\\\cyrl/, unicode: '\\u043B' },\n { tex: /\\\\cyrchar\\\\CYRLYUS/, unicode: '\\u0466' },\n { tex: /\\\\cyrchar\\\\cyrlyus/, unicode: '\\u0467' },\n { tex: /\\\\cyrchar\\\\cyrmillions/, unicode: '\\u0489' },\n { tex: /\\\\cyrchar\\\\CYRM/, unicode: '\\u041C' },\n { tex: /\\\\cyrchar\\\\cyrm/, unicode: '\\u043C' },\n { tex: /\\\\cyrchar\\\\CYRNDSC/, unicode: '\\u04A2' },\n { tex: /\\\\cyrchar\\\\cyrndsc/, unicode: '\\u04A3' },\n { tex: /\\\\cyrchar\\\\CYRNG/, unicode: '\\u04A4' },\n { tex: /\\\\cyrchar\\\\cyrng/, unicode: '\\u04A5' },\n { tex: /\\\\cyrchar\\\\CYRNHK/, unicode: '\\u04C7' },\n { tex: /\\\\cyrchar\\\\cyrnhk/, unicode: '\\u04C8' },\n { tex: /\\\\cyrchar\\\\CYRNJE/, unicode: '\\u040A' },\n { tex: /\\\\cyrchar\\\\cyrnje/, unicode: '\\u045A' },\n { tex: /\\\\cyrchar\\\\CYRN/, unicode: '\\u041D' },\n { tex: /\\\\cyrchar\\\\cyrn/, unicode: '\\u043D' },\n { tex: /\\\\cyrchar\\\\CYROMEGARND/, unicode: '\\u047A' },\n { tex: /\\\\cyrchar\\\\cyromegarnd/, unicode: '\\u047B' },\n { tex: /\\\\cyrchar\\\\CYROMEGATITLO/, unicode: '\\u047C' },\n { tex: /\\\\cyrchar\\\\cyromegatitlo/, unicode: '\\u047D' },\n { tex: /\\\\cyrchar\\\\CYROMEGA/, unicode: '\\u0460' },\n { tex: /\\\\cyrchar\\\\cyromega/, unicode: '\\u0461' },\n { tex: /\\\\cyrchar\\\\CYROTLD/, unicode: '\\u04E8' },\n { tex: /\\\\cyrchar\\\\cyrotld/, unicode: '\\u04E9' },\n { tex: /\\\\cyrchar\\\\CYROT/, unicode: '\\u047E' },\n { tex: /\\\\cyrchar\\\\cyrot/, unicode: '\\u047F' },\n { tex: /\\\\cyrchar\\\\CYRO/, unicode: '\\u041E' },\n { tex: /\\\\cyrchar\\\\cyro/, unicode: '\\u043E' },\n { tex: /\\\\cyrchar\\\\CYRpalochka/, unicode: '\\u04C0' },\n { tex: /\\\\cyrchar\\\\CYRPHK/, unicode: '\\u04A6' },\n { tex: /\\\\cyrchar\\\\cyrphk/, unicode: '\\u04A7' },\n { tex: /\\\\cyrchar\\\\CYRPSI/, unicode: '\\u0470' },\n { tex: /\\\\cyrchar\\\\cyrpsi/, unicode: '\\u0471' },\n { tex: /\\\\cyrchar\\\\CYRP/, unicode: '\\u041F' },\n { tex: /\\\\cyrchar\\\\cyrp/, unicode: '\\u043F' },\n { tex: /\\\\cyrchar\\\\CYRRTICK/, unicode: '\\u048E' },\n { tex: /\\\\cyrchar\\\\cyrrtick/, unicode: '\\u048F' },\n { tex: /\\\\cyrchar\\\\CYRR/, unicode: '\\u0420' },\n { tex: /\\\\cyrchar\\\\cyrr/, unicode: '\\u0440' },\n { tex: /\\\\cyrchar\\\\CYRSCHWA/, unicode: '\\u04D8' },\n { tex: /\\\\cyrchar\\\\cyrschwa/, unicode: '\\u04D9' },\n { tex: /\\\\cyrchar\\\\CYRSDSC/, unicode: '\\u04AA' },\n { tex: /\\\\cyrchar\\\\cyrsdsc/, unicode: '\\u04AB' },\n { tex: /\\\\cyrchar\\\\CYRSEMISFTSN/, unicode: '\\u048C' },\n { tex: /\\\\cyrchar\\\\cyrsemisftsn/, unicode: '\\u048D' },\n { tex: /\\\\cyrchar\\\\CYRSFTSN/, unicode: '\\u042C' },\n { tex: /\\\\cyrchar\\\\cyrsftsn/, unicode: '\\u044C' },\n { tex: /\\\\cyrchar\\\\CYRSHCH/, unicode: '\\u0429' },\n { tex: /\\\\cyrchar\\\\cyrshch/, unicode: '\\u0449' },\n { tex: /\\\\cyrchar\\\\CYRSHHA/, unicode: '\\u04BA' },\n { tex: /\\\\cyrchar\\\\cyrshha/, unicode: '\\u04BB' },\n { tex: /\\\\cyrchar\\\\CYRSH/, unicode: '\\u0428' },\n { tex: /\\\\cyrchar\\\\cyrsh/, unicode: '\\u0448' },\n { tex: /\\\\cyrchar\\\\CYRS/, unicode: '\\u0421' },\n { tex: /\\\\cyrchar\\\\cyrs/, unicode: '\\u0441' },\n { tex: /\\\\cyrchar\\\\CYRTDSC/, unicode: '\\u04AC' },\n { tex: /\\\\cyrchar\\\\cyrtdsc/, unicode: '\\u04AD' },\n { tex: /\\\\cyrchar\\\\CYRTETSE/, unicode: '\\u04B4' },\n { tex: /\\\\cyrchar\\\\cyrtetse/, unicode: '\\u04B5' },\n { tex: /\\\\cyrchar\\\\cyrthousands/, unicode: '\\u0482' },\n { tex: /\\\\cyrchar\\\\CYRTSHE/, unicode: '\\u040B' },\n { tex: /\\\\cyrchar\\\\cyrtshe/, unicode: '\\u045B' },\n { tex: /\\\\cyrchar\\\\CYRT/, unicode: '\\u0422' },\n { tex: /\\\\cyrchar\\\\cyrt/, unicode: '\\u0442' },\n { tex: /\\\\cyrchar\\\\CYRUK/, unicode: '\\u0478' },\n { tex: /\\\\cyrchar\\\\cyruk/, unicode: '\\u0479' },\n { tex: /\\\\cyrchar\\\\CYRUSHRT/, unicode: '\\u040E' },\n { tex: /\\\\cyrchar\\\\cyrushrt/, unicode: '\\u045E' },\n { tex: /\\\\cyrchar\\\\CYRU/, unicode: '\\u0423' },\n { tex: /\\\\cyrchar\\\\cyru/, unicode: '\\u0443' },\n { tex: /\\\\cyrchar\\\\CYRV/, unicode: '\\u0412' },\n { tex: /\\\\cyrchar\\\\cyrv/, unicode: '\\u0432' },\n { tex: /\\\\cyrchar\\\\CYRYAT/, unicode: '\\u0462' },\n { tex: /\\\\cyrchar\\\\CYRYA/, unicode: '\\u042F' },\n { tex: /\\\\cyrchar\\\\cyrya/, unicode: '\\u044F' },\n { tex: /\\\\cyrchar\\\\CYRYHCRS/, unicode: '\\u04B0' },\n { tex: /\\\\cyrchar\\\\cyryhcrs/, unicode: '\\u04B1' },\n { tex: /\\\\cyrchar\\\\CYRYI/, unicode: '\\u0407' },\n { tex: /\\\\cyrchar\\\\cyryi/, unicode: '\\u0457' },\n { tex: /\\\\cyrchar\\\\CYRYO/, unicode: '\\u0401' },\n { tex: /\\\\cyrchar\\\\cyryo/, unicode: '\\u0451' },\n { tex: /\\\\cyrchar\\\\CYRY/, unicode: '\\u04AE' },\n { tex: /\\\\cyrchar\\\\cyry/, unicode: '\\u04AF' },\n { tex: /\\\\cyrchar\\\\CYRYU/, unicode: '\\u042E' },\n { tex: /\\\\cyrchar\\\\cyryu/, unicode: '\\u044E' },\n { tex: /\\\\cyrchar\\\\CYRZDSC/, unicode: '\\u0498' },\n { tex: /\\\\cyrchar\\\\cyrzdsc/, unicode: '\\u0499' },\n { tex: /\\\\cyrchar\\\\CYRZHDSC/, unicode: '\\u0496' },\n { tex: /\\\\cyrchar\\\\cyrzhdsc/, unicode: '\\u0497' },\n { tex: /\\\\cyrchar\\\\CYRZH/, unicode: '\\u0416' },\n { tex: /\\\\cyrchar\\\\cyrzh/, unicode: '\\u0436' },\n { tex: /\\\\cyrchar\\\\CYRZ/, unicode: '\\u0417' },\n { tex: /\\\\cyrchar\\\\cyrz/, unicode: '\\u0437' },\n { tex: /\\\\cyrchar\\\\textnumero/, unicode: '\\u2116' },\n\n { tex: /\\\\acute\\{\\\\ddot\\{\\\\iota\\}\\}/, unicode: '\\u0390' },\n { tex: /\\\\acute\\{\\\\ddot\\{\\\\upsilon\\}\\}/, unicode: '\\u03B0' },\n { tex: /\\\\acute\\{\\\\epsilon\\}/, unicode: '\\u03AD' },\n { tex: /\\\\acute\\{\\\\eta\\}/, unicode: '\\u03AE' },\n { tex: /\\\\acute\\{\\\\iota\\}/, unicode: '\\u03AF' },\n { tex: /\\\\acute\\{\\\\omega\\}/, unicode: '\\u03CE' },\n { tex: /\\\\acute\\{\\\\upsilon\\}/, unicode: '\\u03CD' },\n\n { tex: /\\\\AA|\\\\A\\{A\\}/, unicode: '\\xC5' },\n { tex: /\\\\AC|\\\\A\\{C\\}/, unicode: '\\u223F' },\n { tex: /\\\\accurrent/, unicode: '\\u23E6' },\n { tex: /\\\\acidfree/, unicode: '\\u267E' },\n { tex: /\\\\acwgapcirclearrow/, unicode: '\\u27F2' },\n { tex: /\\\\acwleftarcarrow/, unicode: '\\u2939' },\n { tex: /\\\\acwoverarcarrow/, unicode: '\\u293A' },\n { tex: /\\\\acwunderarcarrow/, unicode: '\\u293B' },\n { tex: /\\\\AE|\\\\A\\{E\\}/, unicode: '\\xC6' },\n { tex: /\\\\allequal/, unicode: '\\u224C' },\n { tex: /\\\\'\\$\\\\alpha\\$/, unicode: '\\u03AC' },\n { tex: /\\\\angdnr/, unicode: '\\u299F' },\n { tex: /\\\\angles/, unicode: '\\u299E' },\n { tex: /\\\\angleubar/, unicode: '\\u29A4' },\n { tex: /\\\\annuity/, unicode: '\\u20E7' },\n { tex: /\\\\APLboxquestion/, unicode: '\\u2370' },\n { tex: /\\\\APLboxupcaret/, unicode: '\\u2353' },\n { tex: /\\\\APLcomment/, unicode: '\\u235D' },\n { tex: /\\\\APLdownarrowbox/, unicode: '\\u2357' },\n { tex: /\\\\APLinput/, unicode: '\\u235E' },\n { tex: /\\\\APLleftarrowbox/, unicode: '\\u2347' },\n { tex: /\\\\APLrightarrowbox/, unicode: '\\u2348' },\n { tex: /\\\\APLuparrowbox/, unicode: '\\u2350' },\n { tex: /\\\\approxeqq/, unicode: '\\u2A70' },\n { tex: /\\\\approxeq/, unicode: '\\u224A' },\n { tex: /\\\\approxnotequal/, unicode: '\\u2246' },\n { tex: /\\\\approx/, unicode: '\\u2248' },\n { tex: /\\\\aquarius/, unicode: '\\u2652' },\n { tex: /\\\\arrowwaveleft|\\\\arrowwaveright/, unicode: '\\u219C' },\n { tex: /\\\\assert/, unicode: '\\u22A6' },\n { tex: /\\\\asteraccent/, unicode: '\\u20F0' },\n { tex: /\\\\backdprime/, unicode: '\\u2036' },\n { tex: /\\\\backepsilon/, unicode: '\\u03F6' },\n { tex: /\\\\backprime/, unicode: '\\u2035' },\n { tex: /\\\\backsimeq/, unicode: '\\u22CD' },\n { tex: /\\\\backsim/, unicode: '\\u223D' },\n { tex: /\\\\backtrprime/, unicode: '\\u2037' },\n { tex: /\\\\bagmember/, unicode: '\\u22FF' },\n { tex: /\\\\barcap/, unicode: '\\u2A43' },\n { tex: /\\\\barcup/, unicode: '\\u2A42' },\n { tex: /\\\\barleftarrowrightarrowba/, unicode: '\\u21B9' },\n { tex: /\\\\barleftharpoon/, unicode: '\\u296B' },\n { tex: /\\\\barovernorthwestarrow/, unicode: '\\u21B8' },\n { tex: /\\\\barrightarrowdiamond/, unicode: '\\u2920' },\n { tex: /\\\\barrightharpoon/, unicode: '\\u296D' },\n { tex: /\\\\barvee/, unicode: '\\u22BD' },\n { tex: /\\\\barwedge/, unicode: '\\u22BC' },\n { tex: /\\\\bbrktbrk/, unicode: '\\u23B6' },\n { tex: /\\\\because/, unicode: '\\u2235' },\n { tex: /\\\\benzenr/, unicode: '\\u23E3' },\n { tex: /\\\\between/, unicode: '\\u226C' },\n { tex: /\\\\bigcap/, unicode: '\\u22C2' },\n { tex: /\\\\bigcirc/, unicode: '\\u25CB' },\n { tex: /\\\\bigcupdot/, unicode: '\\u2A03' },\n { tex: /\\\\bigcup/, unicode: '\\u22C3' },\n { tex: /\\\\biginterleave/, unicode: '\\u2AFC' },\n { tex: /\\\\bigodot/, unicode: '\\u2A00' },\n { tex: /\\\\bigoplus/, unicode: '\\u2A01' },\n { tex: /\\\\bigotimes/, unicode: '\\u2A02' },\n { tex: /\\\\bigslopedvee/, unicode: '\\u2A57' },\n { tex: /\\\\bigslopedwedge/, unicode: '\\u2A58' },\n { tex: /\\\\bigtalloblong/, unicode: '\\u2AFF' },\n { tex: /\\\\bigtop/, unicode: '\\u27D9' },\n { tex: /\\\\bigtriangledown/, unicode: '\\u25BD' },\n { tex: /\\\\bigtriangleleft/, unicode: '\\u2A1E' },\n { tex: /\\\\bigtriangleup/, unicode: '\\u25B3' },\n { tex: /\\\\biohazard/, unicode: '\\u2623' },\n { tex: /\\\\blackcircledownarrow/, unicode: '\\u29ED' },\n { tex: /\\\\blackcircledrightdot/, unicode: '\\u2688' },\n { tex: /\\\\blackcircledtwodots/, unicode: '\\u2689' },\n { tex: /\\\\blackcircleulquadwhite/, unicode: '\\u25D5' },\n { tex: /\\\\blackdiamonddownarrow/, unicode: '\\u29EA' },\n { tex: /\\\\blackhourglass/, unicode: '\\u29D7' },\n { tex: /\\\\blackinwhitediamond/, unicode: '\\u25C8' },\n { tex: /\\\\blackinwhitesquare/, unicode: '\\u25A3' },\n { tex: /\\\\blacklozenge/, unicode: '\\u29EB' },\n { tex: /\\\\blackpointerleft/, unicode: '\\u25C4' },\n { tex: /\\\\blackpointerright/, unicode: '\\u25BA' },\n { tex: /\\\\blacksmiley/, unicode: '\\u263B' },\n { tex: /\\\\blacksquare/, unicode: '\\u25AA' },\n { tex: /\\\\blacktriangledown/, unicode: '\\u25BE' },\n { tex: /\\\\blacktriangleleft/, unicode: '\\u25C2' },\n { tex: /\\\\blacktriangleright/, unicode: '\\u25B8' },\n { tex: /\\\\blacktriangle/, unicode: '\\u25B4' },\n { tex: /\\\\blkhorzoval/, unicode: '\\u2B2C' },\n { tex: /\\\\blkvertoval/, unicode: '\\u2B2E' },\n { tex: /\\\\blockfull/, unicode: '\\u2588' },\n { tex: /\\\\blockhalfshaded/, unicode: '\\u2592' },\n { tex: /\\\\blocklefthalf/, unicode: '\\u258C' },\n { tex: /\\\\blocklowhalf/, unicode: '\\u2584' },\n { tex: /\\\\blockqtrshaded/, unicode: '\\u2591' },\n { tex: /\\\\blockrighthalf/, unicode: '\\u2590' },\n { tex: /\\\\blockthreeqtrshaded/, unicode: '\\u2593' },\n { tex: /\\\\blockuphalf/, unicode: '\\u2580' },\n { tex: /\\\\botsemicircle/, unicode: '\\u25E1' },\n { tex: /\\\\boxast/, unicode: '\\u29C6' },\n { tex: /\\\\boxbox/, unicode: '\\u29C8' },\n { tex: /\\\\boxbslash/, unicode: '\\u29C5' },\n { tex: /\\\\boxcircle/, unicode: '\\u29C7' },\n { tex: /\\\\boxdot/, unicode: '\\u22A1' },\n { tex: /\\\\boxminus/, unicode: '\\u229F' },\n { tex: /\\\\boxonbox/, unicode: '\\u29C9' },\n { tex: /\\\\boxplus/, unicode: '\\u229E' },\n { tex: /\\\\boxslash/, unicode: '\\u29C4' },\n { tex: /\\\\boxtimes/, unicode: '\\u22A0' },\n { tex: /\\\\bsimilarleftarrow/, unicode: '\\u2B41' },\n { tex: /\\\\bsimilarrightarrow/, unicode: '\\u2B47' },\n { tex: /\\\\bsolhsub/, unicode: '\\u27C8' },\n { tex: /\\\\btimes/, unicode: '\\u2A32' },\n { tex: /\\\\bullet/, unicode: '\\u2219' },\n { tex: /\\\\bullseye/, unicode: '\\u25CE' },\n { tex: /\\\\bumpeqq/, unicode: '\\u2AAE' },\n { tex: /\\\\candra/, unicode: '\\u0310' },\n { tex: /\\\\capbarcup/, unicode: '\\u2A49' },\n { tex: /\\\\capdot/, unicode: '\\u2A40' },\n { tex: /\\\\CapitalDifferentialD/, unicode: '\\u2145' },\n { tex: /\\\\capovercup/, unicode: '\\u2A47' },\n { tex: /\\\\capricornus/, unicode: '\\u2651' },\n { tex: /\\\\capwedge/, unicode: '\\u2A44' },\n { tex: /\\\\caretinsert/, unicode: '\\u2038' },\n { tex: /\\\\carriagereturn/, unicode: '\\u21B5' },\n { tex: /\\\\ccwundercurvearrow/, unicode: '\\u293F' },\n { tex: /\\\\CheckedBox/, unicode: '\\u2611' },\n { tex: /\\\\circlearrowleft/, unicode: '\\u21BA' },\n { tex: /\\\\circlearrowright/, unicode: '\\u21BB' },\n { tex: /\\\\circledast/, unicode: '\\u229B' },\n { tex: /\\\\circledbslash/, unicode: '\\u29B8' },\n { tex: /\\\\circledbullet/, unicode: '\\u29BF' },\n { tex: /\\\\circledcirc/, unicode: '\\u229A' },\n { tex: /\\\\circleddash/, unicode: '\\u229D' },\n { tex: /\\\\circledequal/, unicode: '\\u229C' },\n { tex: /\\\\circledgtr/, unicode: '\\u29C1' },\n { tex: /\\\\circledless/, unicode: '\\u29C0' },\n { tex: /\\\\circledownarrow/, unicode: '\\u29EC' },\n { tex: /\\\\circledparallel/, unicode: '\\u29B7' },\n { tex: /\\\\circledrightdot/, unicode: '\\u2686' },\n { tex: /\\\\circledS/, unicode: '\\u24C8' },\n { tex: /\\\\circledtwodots/, unicode: '\\u2687' },\n { tex: /\\\\circledwhitebullet/, unicode: '\\u29BE' },\n { tex: /\\\\circlellquad/, unicode: '\\u25F5' },\n { tex: /\\\\circlelrquad/, unicode: '\\u25F6' },\n { tex: /\\\\circleonleftarrow/, unicode: '\\u2B30' },\n { tex: /\\\\circleonrightarrow/, unicode: '\\u21F4' },\n { tex: /\\\\circletophalfblack/, unicode: '\\u25D3' },\n { tex: /\\\\circleulquad/, unicode: '\\u25F4' },\n { tex: /\\\\circleurquadblack/, unicode: '\\u25D4' },\n { tex: /\\\\circleurquad/, unicode: '\\u25F7' },\n { tex: /\\\\circlevertfill/, unicode: '\\u25CD' },\n { tex: /\\^\\\\circ|\\\\textdegree/, unicode: '\\xB0' },\n { tex: /\\\\cirmid/, unicode: '\\u2AEF' },\n { tex: /\\\\cirscir/, unicode: '\\u29C2' },\n { tex: /\\\\clockoint/, unicode: '\\u2A0F' },\n { tex: /\\\\closedvarcap/, unicode: '\\u2A4D' },\n { tex: /\\\\closedvarcupsmashprod/, unicode: '\\u2A50' },\n { tex: /\\\\closedvarcup/, unicode: '\\u2A4C' },\n { tex: /\\\\closure/, unicode: '\\u2050' },\n { tex: /\\\\clwintegral/, unicode: '\\u2231' },\n { tex: /\\\\Coloneqq/, unicode: '\\u2A74' },\n { tex: /\\\\commaminus/, unicode: '\\u2A29' },\n { tex: /\\\\complement/, unicode: '\\u2201' },\n { tex: /\\\\ComplexI/, unicode: '\\u2148' },\n { tex: /\\\\ComplexJ/, unicode: '\\u2149' },\n { tex: /\\\\concavediamondtickleft/, unicode: '\\u27E2' },\n { tex: /\\\\concavediamondtickright/, unicode: '\\u27E3' },\n { tex: /\\\\concavediamond/, unicode: '\\u27E1' },\n { tex: /\\\\congdot/, unicode: '\\u2A6D' },\n { tex: /\\\\conictaper/, unicode: '\\u2332' },\n { tex: /\\\\coprod/, unicode: '\\u2210' },\n { tex: /\\\\cupbarcap/, unicode: '\\u2A48' },\n { tex: /\\\\cupdot/, unicode: '\\u228D' },\n { tex: /\\\\cupleftarrow/, unicode: '\\u228C' },\n { tex: /\\\\cupovercap/, unicode: '\\u2A46' },\n { tex: /\\\\cupvee/, unicode: '\\u2A45' },\n { tex: /\\\\curlyeqprec/, unicode: '\\u22DE' },\n { tex: /\\\\curlyeqsucc/, unicode: '\\u22DF' },\n { tex: /\\\\curlyvee/, unicode: '\\u22CE' },\n { tex: /\\\\curlywedge/, unicode: '\\u22CF' },\n { tex: /\\\\curvearrowleftplus/, unicode: '\\u293D' },\n { tex: /\\\\curvearrowleft/, unicode: '\\u21B6' },\n { tex: /\\\\curvearrowrightminus/, unicode: '\\u293C' },\n { tex: /\\\\curvearrowright/, unicode: '\\u21B7' },\n { tex: /\\\\cwgapcirclearrow/, unicode: '\\u27F3' },\n { tex: /\\\\cwrightarcarrow/, unicode: '\\u2938' },\n { tex: /\\\\cwundercurvearrow/, unicode: '\\u293E' },\n { tex: /\\\\dashleftarrow/, unicode: '\\u21E0' },\n { tex: /\\\\dashrightarrow/, unicode: '\\u21E2' },\n { tex: /\\\\DashVDash/, unicode: '\\u27DA' },\n { tex: /\\\\dashVdash/, unicode: '\\u27DB' },\n { tex: /\\\\dbkarow/, unicode: '\\u290F' },\n { tex: /\\\\dblarrowupdown/, unicode: '\\u21C5' },\n { tex: /\\\\ddot\\{\\\\iota\\}/, unicode: '\\u03CA' },\n { tex: /\\\\ddotseq/, unicode: '\\u2A77' },\n { tex: /\\\\ddot\\{\\\\upsilon\\}/, unicode: '\\u03CB' },\n { tex: /\\\\DDownarrow/, unicode: '\\u27F1' },\n { tex: /\\\\Ddownarrow/, unicode: '\\u290B' },\n { tex: /\\\\DH|\\\\D\\{H\\}/, unicode: '\\xD0' },\n { tex: /\\\\diameter/, unicode: '\\u2300' },\n { tex: /\\\\diamondbotblack/, unicode: '\\u2B19' },\n { tex: /\\\\Diamonddot/, unicode: '\\u27D0' },\n { tex: /\\\\diamondleftarrowbar/, unicode: '\\u291F' },\n { tex: /\\\\diamondleftarrow/, unicode: '\\u291D' },\n { tex: /\\\\diamondleftblack/, unicode: '\\u2B16' },\n { tex: /\\\\diamondrightblack/, unicode: '\\u2B17' },\n { tex: /\\\\diamondtopblack/, unicode: '\\u2B18' },\n { tex: /\\\\diamond/, unicode: '\\u22C4' },\n { tex: /\\\\Diamond/, unicode: '\\u25C7' },\n { tex: /\\\\diceiii/, unicode: '\\u2682' },\n { tex: /\\\\DifferentialD/, unicode: '\\u2146' },\n { tex: /\\\\Digamma/, unicode: '\\u03DC' },\n { tex: /\\\\digamma/, unicode: '\\u03DD' },\n { tex: /\\\\ding\\{100\\}/, unicode: '\\u2744' },\n { tex: /\\\\ding\\{101\\}/, unicode: '\\u2745' },\n { tex: /\\\\ding\\{102\\}/, unicode: '\\u2746' },\n { tex: /\\\\ding\\{103\\}/, unicode: '\\u2747' },\n { tex: /\\\\ding\\{104\\}/, unicode: '\\u2748' },\n { tex: /\\\\ding\\{105\\}/, unicode: '\\u2749' },\n { tex: /\\\\ding\\{106\\}/, unicode: '\\u274A' },\n { tex: /\\\\ding\\{107\\}/, unicode: '\\u274B' },\n { tex: /\\\\ding\\{108\\}/, unicode: '\\u25CF' },\n { tex: /\\\\ding\\{109\\}/, unicode: '\\u274D' },\n { tex: /\\\\ding\\{110\\}/, unicode: '\\u25A0' },\n { tex: /\\\\ding\\{111\\}/, unicode: '\\u274F' },\n { tex: /\\\\ding\\{112\\}/, unicode: '\\u2750' },\n { tex: /\\\\ding\\{113\\}/, unicode: '\\u2751' },\n { tex: /\\\\ding\\{114\\}/, unicode: '\\u2752' },\n { tex: /\\\\ding\\{115\\}/, unicode: '\\u25B2' },\n { tex: /\\\\ding\\{116\\}/, unicode: '\\u25BC' },\n { tex: /\\\\ding\\{117\\}/, unicode: '\\u25C6' },\n { tex: /\\\\ding\\{118\\}/, unicode: '\\u2756' },\n { tex: /\\\\ding\\{119\\}/, unicode: '\\u25D7' },\n { tex: /\\\\ding\\{120\\}/, unicode: '\\u2758' },\n { tex: /\\\\ding\\{121\\}/, unicode: '\\u2759' },\n { tex: /\\\\ding\\{122\\}/, unicode: '\\u275A' },\n { tex: /\\\\ding\\{123\\}/, unicode: '\\u275B' },\n { tex: /\\\\ding\\{124\\}/, unicode: '\\u275C' },\n { tex: /\\\\ding\\{125\\}/, unicode: '\\u275D' },\n { tex: /\\\\ding\\{126\\}/, unicode: '\\u275E' },\n { tex: /\\\\ding\\{161\\}/, unicode: '\\u2761' },\n { tex: /\\\\ding\\{162\\}/, unicode: '\\u2762' },\n { tex: /\\\\ding\\{163\\}/, unicode: '\\u2763' },\n { tex: /\\\\ding\\{164\\}/, unicode: '\\u2764' },\n { tex: /\\\\ding\\{165\\}/, unicode: '\\u2765' },\n { tex: /\\\\ding\\{166\\}/, unicode: '\\u2766' },\n { tex: /\\\\ding\\{167\\}/, unicode: '\\u2767' },\n { tex: /\\\\ding\\{168\\}/, unicode: '\\u2663' },\n { tex: /\\\\ding\\{169\\}/, unicode: '\\u2666' },\n { tex: /\\\\ding\\{170\\}/, unicode: '\\u2665' },\n { tex: /\\\\ding\\{171\\}/, unicode: '\\u2660' },\n { tex: /\\\\ding\\{172\\}/, unicode: '\\u2460' },\n { tex: /\\\\ding\\{173\\}/, unicode: '\\u2461' },\n { tex: /\\\\ding\\{174\\}/, unicode: '\\u2462' },\n { tex: /\\\\ding\\{175\\}/, unicode: '\\u2463' },\n { tex: /\\\\ding\\{176\\}/, unicode: '\\u2464' },\n { tex: /\\\\ding\\{177\\}/, unicode: '\\u2465' },\n { tex: /\\\\ding\\{178\\}/, unicode: '\\u2466' },\n { tex: /\\\\ding\\{179\\}/, unicode: '\\u2467' },\n { tex: /\\\\ding\\{180\\}/, unicode: '\\u2468' },\n { tex: /\\\\ding\\{181\\}/, unicode: '\\u2469' },\n { tex: /\\\\ding\\{182\\}/, unicode: '\\u2776' },\n { tex: /\\\\ding\\{183\\}/, unicode: '\\u2777' },\n { tex: /\\\\ding\\{184\\}/, unicode: '\\u2778' },\n { tex: /\\\\ding\\{185\\}/, unicode: '\\u2779' },\n { tex: /\\\\ding\\{186\\}/, unicode: '\\u277A' },\n { tex: /\\\\ding\\{187\\}/, unicode: '\\u277B' },\n { tex: /\\\\ding\\{188\\}/, unicode: '\\u277C' },\n { tex: /\\\\ding\\{189\\}/, unicode: '\\u277D' },\n { tex: /\\\\ding\\{190\\}/, unicode: '\\u277E' },\n { tex: /\\\\ding\\{191\\}/, unicode: '\\u277F' },\n { tex: /\\\\ding\\{192\\}/, unicode: '\\u2780' },\n { tex: /\\\\ding\\{193\\}/, unicode: '\\u2781' },\n { tex: /\\\\ding\\{194\\}/, unicode: '\\u2782' },\n { tex: /\\\\ding\\{195\\}/, unicode: '\\u2783' },\n { tex: /\\\\ding\\{196\\}/, unicode: '\\u2784' },\n { tex: /\\\\ding\\{197\\}/, unicode: '\\u2785' },\n { tex: /\\\\ding\\{198\\}/, unicode: '\\u2786' },\n { tex: /\\\\ding\\{199\\}/, unicode: '\\u2787' },\n { tex: /\\\\ding\\{200\\}/, unicode: '\\u2788' },\n { tex: /\\\\ding\\{201\\}/, unicode: '\\u2789' },\n { tex: /\\\\ding\\{202\\}/, unicode: '\\u278A' },\n { tex: /\\\\ding\\{203\\}/, unicode: '\\u278B' },\n { tex: /\\\\ding\\{204\\}/, unicode: '\\u278C' },\n { tex: /\\\\ding\\{205\\}/, unicode: '\\u278D' },\n { tex: /\\\\ding\\{206\\}/, unicode: '\\u278E' },\n { tex: /\\\\ding\\{207\\}/, unicode: '\\u278F' },\n { tex: /\\\\ding\\{208\\}/, unicode: '\\u2790' },\n { tex: /\\\\ding\\{209\\}/, unicode: '\\u2791' },\n { tex: /\\\\ding\\{210\\}/, unicode: '\\u2792' },\n { tex: /\\\\ding\\{211\\}/, unicode: '\\u2793' },\n { tex: /\\\\ding\\{212\\}/, unicode: '\\u2794' },\n { tex: /\\\\ding\\{216\\}/, unicode: '\\u2798' },\n { tex: /\\\\ding\\{217\\}/, unicode: '\\u2799' },\n { tex: /\\\\ding\\{218\\}/, unicode: '\\u279A' },\n { tex: /\\\\ding\\{219\\}/, unicode: '\\u279B' },\n { tex: /\\\\ding\\{220\\}/, unicode: '\\u279C' },\n { tex: /\\\\ding\\{221\\}/, unicode: '\\u279D' },\n { tex: /\\\\ding\\{222\\}/, unicode: '\\u279E' },\n { tex: /\\\\ding\\{223\\}/, unicode: '\\u279F' },\n { tex: /\\\\ding\\{224\\}/, unicode: '\\u27A0' },\n { tex: /\\\\ding\\{225\\}/, unicode: '\\u27A1' },\n { tex: /\\\\ding\\{226\\}/, unicode: '\\u27A2' },\n { tex: /\\\\ding\\{227\\}/, unicode: '\\u27A3' },\n { tex: /\\\\ding\\{228\\}/, unicode: '\\u27A4' },\n { tex: /\\\\ding\\{229\\}/, unicode: '\\u27A5' },\n { tex: /\\\\ding\\{230\\}/, unicode: '\\u27A6' },\n { tex: /\\\\ding\\{231\\}/, unicode: '\\u27A7' },\n { tex: /\\\\ding\\{232\\}/, unicode: '\\u27A8' },\n { tex: /\\\\ding\\{233\\}/, unicode: '\\u27A9' },\n { tex: /\\\\ding\\{234\\}/, unicode: '\\u27AA' },\n { tex: /\\\\ding\\{235\\}/, unicode: '\\u27AB' },\n { tex: /\\\\ding\\{236\\}/, unicode: '\\u27AC' },\n { tex: /\\\\ding\\{237\\}/, unicode: '\\u27AD' },\n { tex: /\\\\ding\\{238\\}/, unicode: '\\u27AE' },\n { tex: /\\\\ding\\{239\\}/, unicode: '\\u27AF' },\n { tex: /\\\\ding\\{241\\}/, unicode: '\\u27B1' },\n { tex: /\\\\ding\\{242\\}/, unicode: '\\u27B2' },\n { tex: /\\\\ding\\{243\\}/, unicode: '\\u27B3' },\n { tex: /\\\\ding\\{244\\}/, unicode: '\\u27B4' },\n { tex: /\\\\ding\\{245\\}/, unicode: '\\u27B5' },\n { tex: /\\\\ding\\{246\\}/, unicode: '\\u27B6' },\n { tex: /\\\\ding\\{247\\}/, unicode: '\\u27B7' },\n { tex: /\\\\ding\\{248\\}/, unicode: '\\u27B8' },\n { tex: /\\\\ding\\{249\\}/, unicode: '\\u27B9' },\n { tex: /\\\\ding\\{250\\}/, unicode: '\\u27BA' },\n { tex: /\\\\ding\\{251\\}/, unicode: '\\u27BB' },\n { tex: /\\\\ding\\{252\\}/, unicode: '\\u27BC' },\n { tex: /\\\\ding\\{253\\}/, unicode: '\\u27BD' },\n { tex: /\\\\ding\\{254\\}/, unicode: '\\u27BE' },\n { tex: /\\\\ding\\{33\\}/, unicode: '\\u2701' },\n { tex: /\\\\ding\\{34\\}/, unicode: '\\u2702' },\n { tex: /\\\\ding\\{35\\}/, unicode: '\\u2703' },\n { tex: /\\\\ding\\{36\\}/, unicode: '\\u2704' },\n { tex: /\\\\ding\\{37\\}/, unicode: '\\u260E' },\n { tex: /\\\\ding\\{38\\}/, unicode: '\\u2706' },\n { tex: /\\\\ding\\{39\\}/, unicode: '\\u2707' },\n { tex: /\\\\ding\\{40\\}/, unicode: '\\u2708' },\n { tex: /\\\\ding\\{41\\}/, unicode: '\\u2709' },\n { tex: /\\\\ding\\{42\\}/, unicode: '\\u261B' },\n { tex: /\\\\ding\\{43\\}/, unicode: '\\u261E' },\n { tex: /\\\\ding\\{44\\}/, unicode: '\\u270C' },\n { tex: /\\\\ding\\{45\\}/, unicode: '\\u270D' },\n { tex: /\\\\ding\\{46\\}/, unicode: '\\u270E' },\n { tex: /\\\\ding\\{47\\}/, unicode: '\\u270F' },\n { tex: /\\\\ding\\{48\\}/, unicode: '\\u2710' },\n { tex: /\\\\ding\\{49\\}/, unicode: '\\u2711' },\n { tex: /\\\\ding\\{50\\}/, unicode: '\\u2712' },\n { tex: /\\\\ding\\{51\\}/, unicode: '\\u2713' },\n { tex: /\\\\ding\\{52\\}/, unicode: '\\u2714' },\n { tex: /\\\\ding\\{53\\}/, unicode: '\\u2715' },\n { tex: /\\\\ding\\{54\\}/, unicode: '\\u2716' },\n { tex: /\\\\ding\\{55\\}/, unicode: '\\u2717' },\n { tex: /\\\\ding\\{56\\}/, unicode: '\\u2718' },\n { tex: /\\\\ding\\{57\\}/, unicode: '\\u2719' },\n { tex: /\\\\ding\\{58\\}/, unicode: '\\u271A' },\n { tex: /\\\\ding\\{59\\}/, unicode: '\\u271B' },\n { tex: /\\\\ding\\{60\\}/, unicode: '\\u271C' },\n { tex: /\\\\ding\\{61\\}/, unicode: '\\u271D' },\n { tex: /\\\\ding\\{62\\}/, unicode: '\\u271E' },\n { tex: /\\\\ding\\{63\\}/, unicode: '\\u271F' },\n { tex: /\\\\ding\\{64\\}/, unicode: '\\u2720' },\n { tex: /\\\\ding\\{65\\}/, unicode: '\\u2721' },\n { tex: /\\\\ding\\{66\\}/, unicode: '\\u2722' },\n { tex: /\\\\ding\\{67\\}/, unicode: '\\u2723' },\n { tex: /\\\\ding\\{68\\}/, unicode: '\\u2724' },\n { tex: /\\\\ding\\{69\\}/, unicode: '\\u2725' },\n { tex: /\\\\ding\\{70\\}/, unicode: '\\u2726' },\n { tex: /\\\\ding\\{71\\}/, unicode: '\\u2727' },\n { tex: /\\\\ding\\{72\\}/, unicode: '\\u2605' },\n { tex: /\\\\ding\\{73\\}/, unicode: '\\u2606' },\n { tex: /\\\\ding\\{74\\}/, unicode: '\\u272A' },\n { tex: /\\\\ding\\{75\\}/, unicode: '\\u272B' },\n { tex: /\\\\ding\\{76\\}/, unicode: '\\u272C' },\n { tex: /\\\\ding\\{77\\}/, unicode: '\\u272D' },\n { tex: /\\\\ding\\{78\\}/, unicode: '\\u272E' },\n { tex: /\\\\ding\\{79\\}/, unicode: '\\u272F' },\n { tex: /\\\\ding\\{80\\}/, unicode: '\\u2730' },\n { tex: /\\\\ding\\{81\\}/, unicode: '\\u2731' },\n { tex: /\\\\ding\\{82\\}/, unicode: '\\u2732' },\n { tex: /\\\\ding\\{83\\}/, unicode: '\\u2733' },\n { tex: /\\\\ding\\{84\\}/, unicode: '\\u2734' },\n { tex: /\\\\ding\\{85\\}/, unicode: '\\u2735' },\n { tex: /\\\\ding\\{86\\}/, unicode: '\\u2736' },\n { tex: /\\\\ding\\{87\\}/, unicode: '\\u2737' },\n { tex: /\\\\ding\\{88\\}/, unicode: '\\u2738' },\n { tex: /\\\\ding\\{89\\}/, unicode: '\\u2739' },\n { tex: /\\\\ding\\{90\\}/, unicode: '\\u273A' },\n { tex: /\\\\ding\\{91\\}/, unicode: '\\u273B' },\n { tex: /\\\\ding\\{92\\}/, unicode: '\\u273C' },\n { tex: /\\\\ding\\{93\\}/, unicode: '\\u273D' },\n { tex: /\\\\ding\\{94\\}/, unicode: '\\u273E' },\n { tex: /\\\\ding\\{95\\}/, unicode: '\\u273F' },\n { tex: /\\\\ding\\{96\\}/, unicode: '\\u2740' },\n { tex: /\\\\ding\\{97\\}/, unicode: '\\u2741' },\n { tex: /\\\\ding\\{98\\}/, unicode: '\\u2742' },\n { tex: /\\\\ding\\{99\\}/, unicode: '\\u2743' },\n { tex: /\\\\divideontimes/, unicode: '\\u22C7' },\n { tex: /\\\\doteqdot/, unicode: '\\u2251' },\n { tex: /\\\\dotequiv/, unicode: '\\u2A67' },\n { tex: /\\\\dotplus/, unicode: '\\u2214' },\n { tex: /\\\\dotsim/, unicode: '\\u2A6A' },\n { tex: /\\\\dottedcircle/, unicode: '\\u25CC' },\n { tex: /\\\\dottedsquare/, unicode: '\\u2B1A' },\n { tex: /\\\\dottimes/, unicode: '\\u2A30' },\n { tex: /\\\\doublebarvee/, unicode: '\\u2A62' },\n { tex: /\\\\doubleplus/, unicode: '\\u29FA' },\n { tex: /\\\\downarrowbarred/, unicode: '\\u2908' },\n { tex: /\\\\DownArrowBar/, unicode: '\\u2913' },\n { tex: /\\\\downarrow/, unicode: '\\u2193' },\n { tex: /\\\\Downarrow/, unicode: '\\u21D3' },\n { tex: /\\\\DownArrowUpArrow/, unicode: '\\u21F5' },\n { tex: /\\\\downdasharrow/, unicode: '\\u21E3' },\n { tex: /\\\\downdownarrows/, unicode: '\\u21CA' },\n { tex: /\\\\downdownharpoons/, unicode: '\\u2965' },\n { tex: /\\\\downfishtail/, unicode: '\\u297F' },\n { tex: /\\\\downharpoonleft/, unicode: '\\u21C3' },\n { tex: /\\\\downharpoonright/, unicode: '\\u21C2' },\n { tex: /\\\\DownLeftRightVector/, unicode: '\\u2950' },\n { tex: /\\\\DownLeftTeeVector/, unicode: '\\u295E' },\n { tex: /\\\\DownLeftVectorBar/, unicode: '\\u2956' },\n { tex: /\\\\downrightcurvedarrow/, unicode: '\\u2935' },\n { tex: /\\\\DownRightTeeVector/, unicode: '\\u295F' },\n { tex: /\\\\DownRightVectorBar/, unicode: '\\u2957' },\n { tex: /\\\\downslopeellipsis/, unicode: '\\u22F1' },\n { tex: /\\\\downtriangleleftblack/, unicode: '\\u29E8' },\n { tex: /\\\\downtrianglerightblack/, unicode: '\\u29E9' },\n { tex: /\\\\downwhitearrow/, unicode: '\\u21E9' },\n { tex: /\\\\drbkarow/, unicode: '\\u2910' },\n { tex: /\\\\droang/, unicode: '\\u031A' },\n { tex: /\\\\egsdot/, unicode: '\\u2A98' },\n { tex: /\\\\eighthnote/, unicode: '\\u266A' },\n { tex: /\\\\elinters/, unicode: '\\u23E7' },\n { tex: /\\\\Elolarr/, unicode: '\\u2940' },\n { tex: /\\\\Elorarr/, unicode: '\\u2941' },\n { tex: /\\\\Elroang/, unicode: '\\u2986' },\n { tex: /\\\\elsdot/, unicode: '\\u2A97' },\n { tex: /\\\\ElsevierGlyph\\{2129\\}/, unicode: '\\u2129' },\n { tex: /\\\\ElsevierGlyph\\{21B3\\}/, unicode: '\\u21B3' },\n { tex: /\\\\ElsevierGlyph\\{2232\\}/, unicode: '\\u2232' },\n { tex: /\\\\ElsevierGlyph\\{2233\\}/, unicode: '\\u2233' },\n { tex: /\\\\ElsevierGlyph\\{2238\\}/, unicode: '\\u2238' },\n { tex: /\\\\ElsevierGlyph\\{2242\\}/, unicode: '\\u2242' },\n { tex: /\\\\ElsevierGlyph\\{225A\\}/, unicode: '\\u225A' },\n { tex: /\\\\ElsevierGlyph\\{225F\\}/, unicode: '\\u225F' },\n { tex: /\\\\ElsevierGlyph\\{2274\\}/, unicode: '\\u2274' },\n { tex: /\\\\ElsevierGlyph\\{2275\\}/, unicode: '\\u2275' },\n { tex: /\\\\ElsevierGlyph\\{22C0\\}/, unicode: '\\u22C0' },\n { tex: /\\\\ElsevierGlyph\\{22C1\\}/, unicode: '\\u22C1' },\n { tex: /\\\\ElsevierGlyph\\{300A\\}/, unicode: '\\u300A' },\n { tex: /\\\\ElsevierGlyph\\{300B\\}/, unicode: '\\u300B' },\n { tex: /\\\\ElsevierGlyph\\{3018\\}/, unicode: '\\u2985' },\n { tex: /\\\\ElsevierGlyph\\{3019\\}/, unicode: '\\u3019' },\n { tex: /\\\\ElsevierGlyph\\{E20A\\}/, unicode: '\\u2926' },\n { tex: /\\\\ElsevierGlyph\\{E20B\\}/, unicode: '\\u2925' },\n { tex: /\\\\ElsevierGlyph\\{E20C\\}/, unicode: '\\u2923' },\n { tex: /\\\\ElsevierGlyph\\{E20D\\}/, unicode: '\\u2924' },\n { tex: /\\\\ElsevierGlyph\\{E20E\\}/, unicode: '\\u2928' },\n { tex: /\\\\ElsevierGlyph\\{E20F\\}/, unicode: '\\u2929' },\n { tex: /\\\\ElsevierGlyph\\{E210\\}/, unicode: '\\u292A' },\n { tex: /\\\\ElsevierGlyph\\{E211\\}/, unicode: '\\u2927' },\n { tex: /\\\\ElsevierGlyph\\{E212\\}/, unicode: '\\u2905' },\n { tex: /\\\\ElsevierGlyph\\{E214\\}/, unicode: '\\u297C' },\n { tex: /\\\\ElsevierGlyph\\{E215\\}/, unicode: '\\u297D' },\n { tex: /\\\\ElsevierGlyph\\{E219\\}/, unicode: '\\u2937' },\n { tex: /\\\\ElsevierGlyph\\{E21A\\}/, unicode: '\\u2936' },\n { tex: /\\\\ElsevierGlyph\\{E21C\\}/, unicode: '\\u2933' },\n { tex: /\\\\ElsevierGlyph\\{E259\\}/, unicode: '\\u2A3C' },\n { tex: /\\\\ElsevierGlyph\\{E25A\\}/, unicode: '\\u2A25' },\n { tex: /\\\\ElsevierGlyph\\{E25B\\}/, unicode: '\\u2A2A' },\n { tex: /\\\\ElsevierGlyph\\{E25C\\}/, unicode: '\\u2A2D' },\n { tex: /\\\\ElsevierGlyph\\{E25D\\}/, unicode: '\\u2A2E' },\n { tex: /\\\\ElsevierGlyph\\{E25E\\}/, unicode: '\\u2A34' },\n { tex: /\\\\ElsevierGlyph\\{E260\\}/, unicode: '\\u29B5' },\n { tex: /\\\\ElsevierGlyph\\{E291\\}/, unicode: '\\u2994' },\n { tex: /\\\\ElsevierGlyph\\{E30D\\}/, unicode: '\\u2AEB' },\n { tex: /\\\\ElsevierGlyph\\{E36E\\}/, unicode: '\\u2A55' },\n { tex: /\\\\ElsevierGlyph\\{E372\\}/, unicode: '\\u29DC' },\n { tex: /\\\\ElsevierGlyph\\{E381\\}/, unicode: '\\u25B1' },\n { tex: /\\\\ElsevierGlyph\\{E395\\}/, unicode: '\\u2A10' },\n { tex: /\\\\ElsevierGlyph\\{E61B\\}/, unicode: '\\u29B6' },\n { tex: /\\\\ElsevierGlyph\\{E838\\}/, unicode: '\\u233D' },\n { tex: /\\\\Elxsqcup/, unicode: '\\u2A06' },\n { tex: /\\\\Elxuplus/, unicode: '\\u2A04' },\n { tex: /\\\\ElzAnd/, unicode: '\\u2A53' },\n { tex: /\\\\Elzbar/, unicode: '\\u0336' },\n { tex: /\\\\Elzbtdl/, unicode: '\\u026C' },\n { tex: /\\\\ElzCint/, unicode: '\\u2A0D' },\n { tex: /\\\\Elzcirfb/, unicode: '\\u25D2' },\n { tex: /\\\\Elzcirfl/, unicode: '\\u25D0' },\n { tex: /\\\\Elzcirfr/, unicode: '\\u25D1' },\n { tex: /\\\\Elzclomeg/, unicode: '\\u0277' },\n { tex: /\\\\Elzddfnc/, unicode: '\\u2999' },\n { tex: /\\\\Elzdefas/, unicode: '\\u29CB' },\n { tex: /\\\\Elzdlcorn/, unicode: '\\u23A3' },\n { tex: /\\\\Elzdshfnc/, unicode: '\\u2506' },\n { tex: /\\\\Elzdyogh/, unicode: '\\u02A4' },\n { tex: /\\\\Elzesh/, unicode: '\\u0283' },\n { tex: /\\\\Elzfhr/, unicode: '\\u027E' },\n { tex: /\\\\Elzglst/, unicode: '\\u0294' },\n { tex: /\\\\Elzhlmrk/, unicode: '\\u02D1' },\n { tex: /\\\\ElzInf/, unicode: '\\u2A07' },\n { tex: /\\\\Elzinglst/, unicode: '\\u0296' },\n { tex: /\\\\Elzinvv/, unicode: '\\u028C' },\n { tex: /\\\\Elzinvw/, unicode: '\\u028D' },\n { tex: /\\\\ElzLap/, unicode: '\\u29CA' },\n { tex: /\\\\Elzlmrk/, unicode: '\\u02D0' },\n { tex: /\\\\Elzlow/, unicode: '\\u02D5' },\n { tex: /\\\\Elzlpargt/, unicode: '\\u29A0' },\n { tex: /\\\\Elzltlmr/, unicode: '\\u0271' },\n { tex: /\\\\Elzltln/, unicode: '\\u0272' },\n { tex: /\\\\Elzminhat/, unicode: '\\u2A5F' },\n { tex: /\\\\Elzopeno/, unicode: '\\u0254' },\n { tex: /\\\\Elzpalh/, unicode: '\\u0321' },\n { tex: /\\\\Elzpbgam/, unicode: '\\u0264' },\n { tex: /\\\\Elzpgamma/, unicode: '\\u0263' },\n { tex: /\\\\Elzpscrv/, unicode: '\\u028B' },\n { tex: /\\\\Elzpupsil/, unicode: '\\u028A' },\n { tex: /\\\\Elzrais/, unicode: '\\u02D4' },\n { tex: /\\\\Elzrarrx/, unicode: '\\u2947' },\n { tex: /\\\\Elzreapos/, unicode: '\\u201B' },\n { tex: /\\\\Elzreglst/, unicode: '\\u0295' },\n { tex: /\\\\ElzRlarr/, unicode: '\\u2942' },\n { tex: /\\\\ElzrLarr/, unicode: '\\u2944' },\n { tex: /\\\\Elzrtld/, unicode: '\\u0256' },\n { tex: /\\\\Elzrtll/, unicode: '\\u026D' },\n { tex: /\\\\Elzrtln/, unicode: '\\u0273' },\n { tex: /\\\\Elzrtlr/, unicode: '\\u027D' },\n { tex: /\\\\Elzrtls/, unicode: '\\u0282' },\n { tex: /\\\\Elzrtlt/, unicode: '\\u0288' },\n { tex: /\\\\Elzrtlz/, unicode: '\\u0290' },\n { tex: /\\\\Elzrttrnr/, unicode: '\\u027B' },\n { tex: /\\\\Elzrvbull/, unicode: '\\u25D8' },\n { tex: /\\\\Elzsbbrg/, unicode: '\\u032A' },\n { tex: /\\\\Elzsblhr/, unicode: '\\u02D3' },\n { tex: /\\\\Elzsbrhr/, unicode: '\\u02D2' },\n { tex: /\\\\Elzschwa/, unicode: '\\u0259' },\n { tex: /\\\\Elzsqfl/, unicode: '\\u25E7' },\n { tex: /\\\\Elzsqfnw/, unicode: '\\u2519' },\n { tex: /\\\\Elzsqfr/, unicode: '\\u25E8' },\n { tex: /\\\\Elzsqfse/, unicode: '\\u25EA' },\n { tex: /\\\\Elzsqspne/, unicode: '\\u22E5' },\n { tex: /\\\\ElzSup/, unicode: '\\u2A08' },\n { tex: /\\\\Elztdcol/, unicode: '\\u2AF6' },\n { tex: /\\\\Elztesh/, unicode: '\\u02A7' },\n { tex: /\\\\Elztfnc/, unicode: '\\u2980' },\n { tex: /\\\\ElzThr/, unicode: '\\u2A05' },\n { tex: /\\\\ElzTimes/, unicode: '\\u2A2F' },\n { tex: /\\\\Elztrna/, unicode: '\\u0250' },\n { tex: /\\\\Elztrnh/, unicode: '\\u0265' },\n { tex: /\\\\Elztrnmlr/, unicode: '\\u0270' },\n { tex: /\\\\Elztrnm/, unicode: '\\u026F' },\n { tex: /\\\\Elztrnrl/, unicode: '\\u027A' },\n { tex: /\\\\Elztrnr/, unicode: '\\u0279' },\n { tex: /\\\\Elztrnsa/, unicode: '\\u0252' },\n { tex: /\\\\Elztrnt/, unicode: '\\u0287' },\n { tex: /\\\\Elztrny/, unicode: '\\u028E' },\n { tex: /\\\\Elzverti/, unicode: '\\u02CC' },\n { tex: /\\\\Elzverts/, unicode: '\\u02C8' },\n { tex: /\\\\Elzvrecto/, unicode: '\\u25AF' },\n { tex: /\\\\Elzxrat/, unicode: '\\u211E' },\n { tex: /\\\\Elzyogh/, unicode: '\\u0292' },\n { tex: /\\\\emptysetoarrl/, unicode: '\\u29B4' },\n { tex: /\\\\emptysetoarr/, unicode: '\\u29B3' },\n { tex: /\\\\emptysetobar/, unicode: '\\u29B1' },\n { tex: /\\\\emptysetocirc/, unicode: '\\u29B2' },\n { tex: /\\\\enclosecircle/, unicode: '\\u20DD' },\n { tex: /\\\\enclosediamond/, unicode: '\\u20DF' },\n { tex: /\\\\enclosesquare/, unicode: '\\u20DE' },\n { tex: /\\\\enclosetriangle/, unicode: '\\u20E4' },\n { tex: /\\\\ensuremath\\{\\\\Elzpes\\}/, unicode: '\\u20A7' },\n { tex: /\\\\eparsl/, unicode: '\\u29E3' },\n { tex: /\\\\epsilon/, unicode: '\\u03B5' },\n { tex: /\\\\eqcolon/, unicode: '\\u2239' },\n { tex: /\\\\eqqgtr/, unicode: '\\u2A9A' },\n { tex: /\\\\eqqless/, unicode: '\\u2A99' },\n { tex: /\\\\eqqplus/, unicode: '\\u2A71' },\n { tex: /\\\\eqqsim/, unicode: '\\u2A73' },\n { tex: /\\\\eqqslantgtr/, unicode: '\\u2A9C' },\n { tex: /\\\\eqqslantless/, unicode: '\\u2A9B' },\n { tex: /\\\\eqslantgtr/, unicode: '\\u2A96' },\n { tex: /\\\\eqslantless/, unicode: '\\u2A95' },\n { tex: /\\\\equalleftarrow/, unicode: '\\u2B40' },\n { tex: /\\\\equalrightarrow/, unicode: '\\u2971' },\n { tex: /\\\\equivDD/, unicode: '\\u2A78' },\n { tex: /\\\\equivVert/, unicode: '\\u2A68' },\n { tex: /\\\\equivVvert/, unicode: '\\u2A69' },\n { tex: /\\\\eqvparsl/, unicode: '\\u29E5' },\n { tex: /\\\\errbarblackcircle/, unicode: '\\u29F3' },\n { tex: /\\\\errbarblackdiamond/, unicode: '\\u29F1' },\n { tex: /\\\\errbarblacksquare/, unicode: '\\u29EF' },\n { tex: /\\\\errbarcircle/, unicode: '\\u29F2' },\n { tex: /\\\\errbardiamond/, unicode: '\\u29F0' },\n { tex: /\\\\errbarsquare/, unicode: '\\u29EE' },\n { tex: /\\\\estimates/, unicode: '\\u2259' },\n { tex: /\\\\exists/, unicode: '\\u2203' },\n { tex: /\\\\ExponetialE/, unicode: '\\u2147' },\n { tex: /\\\\fallingdotseq/, unicode: '\\u2252' },\n { tex: /\\\\fbowtie/, unicode: '\\u29D3' },\n { tex: /\\\\fbox\\{~~\\}/, unicode: '\\u25AD' },\n { tex: /\\\\fdiagovnearrow/, unicode: '\\u292F' },\n { tex: /\\\\fdiagovrdiag/, unicode: '\\u292C' },\n { tex: /\\\\fisheye/, unicode: '\\u25C9' },\n { tex: /\\\\forall/, unicode: '\\u2200' },\n { tex: /\\\\forcesextra/, unicode: '\\u22A8' },\n { tex: /\\\\forksnot/, unicode: '\\u2ADD' },\n { tex: /\\\\fracslash/, unicode: '\\u2044' },\n { tex: /\\\\frownie/, unicode: '\\u2639' },\n { tex: /\\\\fullouterjoin/, unicode: '\\u27D7' },\n { tex: /\\\\geqqslant/, unicode: '\\u2AFA' },\n { tex: /\\\\geqslant/, unicode: '\\u2A7E' },\n { tex: /\\\\gesdotol/, unicode: '\\u2A84' },\n { tex: /\\\\gesdoto/, unicode: '\\u2A82' },\n { tex: /\\\\gesdot/, unicode: '\\u2A80' },\n { tex: /\\\\gesles/, unicode: '\\u2A94' },\n { tex: /\\\\ggcurly/, unicode: '\\u2ABC' },\n { tex: /\\\\gggnest/, unicode: '\\u2AF8' },\n { tex: /\\\\gleichstark/, unicode: '\\u29E6' },\n { tex: /\\\\gnapprox/, unicode: '\\u2A8A' },\n { tex: /\\\\greaterequivlnt/, unicode: '\\u2273' },\n { tex: /\\\\gtquest/, unicode: '\\u2A7C' },\n { tex: /\\\\gtrapprox/, unicode: '\\u2A86' },\n { tex: /\\\\gtrarr/, unicode: '\\u2978' },\n { tex: /\\\\gtreqless/, unicode: '\\u22DB' },\n { tex: /\\\\gtreqqless/, unicode: '\\u2A8C' },\n { tex: /\\\\gtrless/, unicode: '\\u2277' },\n { tex: /\\\\guillemotleft/, unicode: '\\xAB' },\n { tex: /\\\\guillemotright/, unicode: '\\xBB' },\n { tex: /\\\\guilsinglleft/, unicode: '\\u2039' },\n { tex: /\\\\guilsinglright/, unicode: '\\u203A' },\n { tex: /\\\\harrowextender/, unicode: '\\u23AF' },\n { tex: /\\\\hatapprox/, unicode: '\\u2A6F' },\n { tex: /\\\\heartsuit/, unicode: '\\u2661' },\n { tex: /\\\\Hermaphrodite/, unicode: '\\u26A5' },\n { tex: /\\\\hermitconjmatrix/, unicode: '\\u22B9' },\n { tex: /\\\\hexagonblack/, unicode: '\\u2B23' },\n { tex: /\\\\hexagon/, unicode: '\\u2394' },\n { tex: /\\\\homothetic/, unicode: '\\u223B' },\n { tex: /\\\\hookleftarrow/, unicode: '\\u21A9' },\n { tex: /\\\\hookrightarrow/, unicode: '\\u21AA' },\n { tex: /\\\\hourglass/, unicode: '\\u29D6' },\n { tex: /\\\\hphantom\\{0\\}/, unicode: '\\u2007' },\n { tex: /\\\\hphantom\\{,\\}/, unicode: '\\u2008' },\n { tex: /\\\\hrectangleblack/, unicode: '\\u25AC' },\n { tex: /\\\\hspace\\{0\\.166em\\}/, unicode: '\\u2006' },\n { tex: /\\\\,|\\\\hspace\\{0\\.167em\\}/, unicode: '\\u2009' },\n { tex: /\\\\hspace\\{0\\.25em\\}/, unicode: '\\u2005' },\n { tex: /\\\\hspace\\{0\\.33em\\}/, unicode: '\\u2004' },\n { tex: /\\\\hspace\\{0\\.6em\\}/, unicode: '\\u2002' },\n { tex: /\\\\hspace\\{1em\\}/, unicode: '\\u2003' },\n { tex: /\\\\hyphenbullet/, unicode: '\\u2043' },\n { tex: /\\\\hzigzag/, unicode: '\\u3030' },\n { tex: /\\\\iiiint/, unicode: '\\u2A0C' },\n { tex: /\\\\increment/, unicode: '\\u2206' },\n { tex: /\\\\intBar/, unicode: '\\u2A0E' },\n { tex: /\\\\intbottom/, unicode: '\\u2321' },\n { tex: /\\\\intcap/, unicode: '\\u2A19' },\n { tex: /\\\\intcup/, unicode: '\\u2A1A' },\n { tex: /\\\\intercal/, unicode: '\\u22BA' },\n { tex: /\\\\interleave/, unicode: '\\u2AF4' },\n { tex: /\\\\intextender/, unicode: '\\u23AE' },\n { tex: /\\\\int\\\\!\\\\int\\\\!\\\\int/, unicode: '\\u222D' },\n { tex: /\\\\int\\\\!\\\\int/, unicode: '\\u222C' },\n { tex: /\\\\intlarhk/, unicode: '\\u2A17' },\n { tex: /\\\\intprodr/, unicode: '\\u2A3D' },\n { tex: /\\\\inversewhitecircle/, unicode: '\\u25D9' },\n { tex: /\\\\invwhitelowerhalfcircle/, unicode: '\\u25DB' },\n { tex: /\\\\invwhiteupperhalfcircle/, unicode: '\\u25DA' },\n { tex: /\\\\isindot/, unicode: '\\u22F5' },\n { tex: /\\\\isinobar/, unicode: '\\u22F7' },\n { tex: /\\\\'\\{\\}\\{I\\}/, unicode: '\\u038A' },\n { tex: /\\\\jupiter/, unicode: '\\u2643' },\n { tex: /<\\\\kern-0\\.58em\\(/, unicode: '\\u2993' },\n { tex: /\\\\Lambda/, unicode: '\\u039B' },\n { tex: /\\\\lambda/, unicode: '\\u03BB' },\n { tex: /\\\\langledot/, unicode: '\\u2991' },\n { tex: /\\\\laplac/, unicode: '\\u29E0' },\n { tex: /\\\\lazysinv/, unicode: '\\u223E' },\n { tex: /\\\\lblkbrbrak/, unicode: '\\u2997' },\n { tex: /\\\\lbracelend/, unicode: '\\u23A9' },\n { tex: /\\\\lbracemid/, unicode: '\\u23A8' },\n { tex: /\\\\lbraceuend/, unicode: '\\u23A7' },\n { tex: /\\\\lbrace/, unicode: '\\\\{' },\n { tex: /\\\\lBrace/, unicode: '\\u2983' },\n { tex: /\\\\lbrackextender/, unicode: '\\u23A2' },\n { tex: /\\\\lbracklltick/, unicode: '\\u298F' },\n { tex: /\\\\lbrackubar/, unicode: '\\u298B' },\n { tex: /\\\\lbrackuend/, unicode: '\\u23A1' },\n { tex: /\\\\lbrackultick/, unicode: '\\u298D' },\n { tex: /\\\\lbrbrak/, unicode: '\\u2772' },\n { tex: /\\\\Lbrbrak/, unicode: '\\u27EC' },\n { tex: /\\\\lcurvyangle/, unicode: '\\u29FC' },\n { tex: /\\\\leftarrowapprox/, unicode: '\\u2B4A' },\n { tex: /\\\\leftarrowbackapprox/, unicode: '\\u2B42' },\n { tex: /\\\\LeftArrowBar/, unicode: '\\u21E4' },\n { tex: /\\\\leftarrowbsimilar/, unicode: '\\u2B4B' },\n { tex: /\\\\leftarrowless/, unicode: '\\u2977' },\n { tex: /\\\\leftarrowonoplus/, unicode: '\\u2B32' },\n { tex: /\\\\leftarrowplus/, unicode: '\\u2946' },\n { tex: /\\\\leftarrowshortrightarrow/, unicode: '\\u2943' },\n { tex: /\\\\leftarrowsimilar/, unicode: '\\u2973' },\n { tex: /\\\\leftarrowsubset/, unicode: '\\u297A' },\n { tex: /\\\\leftarrowtail/, unicode: '\\u21A2' },\n { tex: /\\\\leftarrowtriangle/, unicode: '\\u21FD' },\n { tex: /\\\\leftarrow/, unicode: '\\u2190' },\n { tex: /\\\\Leftarrow/, unicode: '\\u21D0' },\n { tex: /\\\\leftarrowx/, unicode: '\\u2B3E' },\n { tex: /\\\\leftbarharpoon/, unicode: '\\u296A' },\n { tex: /\\\\leftbkarrow/, unicode: '\\u290C' },\n { tex: /\\\\LEFTCIRCLE/, unicode: '\\u25D6' },\n { tex: /\\\\leftcurvedarrow/, unicode: '\\u2B3F' },\n { tex: /\\\\leftdbkarrow/, unicode: '\\u290E' },\n { tex: /\\\\leftdbltail/, unicode: '\\u291B' },\n { tex: /\\\\leftdotarrow/, unicode: '\\u2B38' },\n { tex: /\\\\LeftDownTeeVector/, unicode: '\\u2961' },\n { tex: /\\\\LeftDownVectorBar/, unicode: '\\u2959' },\n { tex: /\\\\leftharpoondown/, unicode: '\\u21BD' },\n { tex: /\\\\leftharpoonup/, unicode: '\\u21BC' },\n { tex: /\\\\leftleftarrows/, unicode: '\\u21C7' },\n { tex: /\\\\leftleftharpoons/, unicode: '\\u2962' },\n { tex: /\\\\leftouterjoin/, unicode: '\\u27D5' },\n { tex: /\\\\leftrightarrowcircle/, unicode: '\\u2948' },\n { tex: /\\\\leftrightarrows/, unicode: '\\u21C6' },\n { tex: /\\\\leftrightarrowtriangle/, unicode: '\\u21FF' },\n { tex: /\\\\leftrightarrow/, unicode: '\\u2194' },\n { tex: /\\\\Leftrightarrow/, unicode: '\\u21D4' },\n { tex: /\\\\leftrightharpoonsdown/, unicode: '\\u2967' },\n { tex: /\\\\leftrightharpoons/, unicode: '\\u21CB' },\n { tex: /\\\\leftrightharpoonsup/, unicode: '\\u2966' },\n { tex: /\\\\leftrightharpoon/, unicode: '\\u294A' },\n { tex: /\\\\leftrightsquigarrow/, unicode: '\\u21AD' },\n { tex: /\\\\LeftRightVector/, unicode: '\\u294E' },\n { tex: /\\\\leftslice/, unicode: '\\u2AA6' },\n { tex: /\\\\leftsquigarrow/, unicode: '\\u21DC' },\n { tex: /\\\\lefttail/, unicode: '\\u2919' },\n { tex: /\\\\LeftTeeVector/, unicode: '\\u295A' },\n { tex: /\\\\leftthreearrows/, unicode: '\\u2B31' },\n { tex: /\\\\leftthreetimes/, unicode: '\\u22CB' },\n { tex: /\\\\LeftTriangleBar/, unicode: '\\u29CF' },\n { tex: /\\\\LeftUpDownVector/, unicode: '\\u2951' },\n { tex: /\\\\LeftUpTeeVector/, unicode: '\\u2960' },\n { tex: /\\\\LeftUpVectorBar/, unicode: '\\u2958' },\n { tex: /\\\\LeftVectorBar/, unicode: '\\u2952' },\n { tex: /\\\\leftwhitearrow/, unicode: '\\u21E6' },\n { tex: /\\\\leqqslant/, unicode: '\\u2AF9' },\n { tex: /\\\\leqslant/, unicode: '\\u2A7D' },\n { tex: /\\\\lesdotor/, unicode: '\\u2A83' },\n { tex: /\\\\lesdoto/, unicode: '\\u2A81' },\n { tex: /\\\\lesdot/, unicode: '\\u2A7F' },\n { tex: /\\\\lesges/, unicode: '\\u2A93' },\n { tex: /\\\\lessapprox/, unicode: '\\u2A85' },\n { tex: /\\\\lessdot/, unicode: '\\u22D6' },\n { tex: /\\\\lesseqgtr/, unicode: '\\u22DA' },\n { tex: /\\\\lesseqqgtr/, unicode: '\\u2A8B' },\n { tex: /\\\\lessequivlnt/, unicode: '\\u2272' },\n { tex: /\\\\lessgtr/, unicode: '\\u2276' },\n { tex: /\\\\lfbowtie/, unicode: '\\u29D1' },\n { tex: /\\\\lftimes/, unicode: '\\u29D4' },\n { tex: /\\\\lgblkcircle/, unicode: '\\u2B24' },\n { tex: /\\\\lgroup/, unicode: '\\u27EE' },\n { tex: /\\\\lightning/, unicode: '\\u21AF' },\n { tex: /\\\\linefeed/, unicode: '\\u21B4' },\n { tex: /\\\\llblacktriangle/, unicode: '\\u25E3' },\n { tex: /\\\\llbracket/, unicode: '\\u27E6' },\n { tex: /\\\\llcorner/, unicode: '\\u231E' },\n { tex: /\\\\llcurly/, unicode: '\\u2ABB' },\n { tex: /\\\\Lleftarrow/, unicode: '\\u21DA' },\n { tex: /\\\\LLeftarrow/, unicode: '\\u2B45' },\n { tex: /\\\\lllnest/, unicode: '\\u2AF7' },\n { tex: /\\\\lltriangle/, unicode: '\\u25FA' },\n { tex: /\\\\lmoustache/, unicode: '\\u23B0' },\n { tex: /\\\\lnapprox/, unicode: '\\u2A89' },\n { tex: /\\\\longdashv/, unicode: '\\u27DE' },\n { tex: /\\\\longdivision/, unicode: '\\u27CC' },\n { tex: /\\\\longleftarrow/, unicode: '\\u27F5' },\n { tex: /\\\\Longleftarrow/, unicode: '\\u27F8' },\n { tex: /\\\\longleftrightarrow/, unicode: '\\u27F7' },\n { tex: /\\\\Longleftrightarrow/, unicode: '\\u27FA' },\n { tex: /\\\\longleftsquigarrow/, unicode: '\\u2B33' },\n { tex: /\\\\longmapsfrom/, unicode: '\\u27FB' },\n { tex: /\\\\Longmapsfrom/, unicode: '\\u27FD' },\n { tex: /\\\\longmapsto/, unicode: '\\u27FC' },\n { tex: /\\\\Longmapsto/, unicode: '\\u27FE' },\n { tex: /\\\\longrightarrow/, unicode: '\\u27F6' },\n { tex: /\\\\Longrightarrow/, unicode: '\\u27F9' },\n { tex: /\\\\looparrowleft/, unicode: '\\u21AB' },\n { tex: /\\\\looparrowright/, unicode: '\\u21AC' },\n { tex: /\\\\lowint/, unicode: '\\u2A1C' },\n { tex: /\\\\lozengeminus/, unicode: '\\u27E0' },\n { tex: /\\\\lozenge/, unicode: '\\u25CA' },\n { tex: /\\\\lparenextender/, unicode: '\\u239C' },\n { tex: /\\\\Lparengtr/, unicode: '\\u2995' },\n { tex: /\\\\lparenlend/, unicode: '\\u239D' },\n { tex: /\\\\lparenuend/, unicode: '\\u239B' },\n { tex: /\\\\lrblacktriangle/, unicode: '\\u25E2' },\n { tex: /\\\\lrcorner/, unicode: '\\u231F' },\n { tex: /\\\\lrtriangleeq/, unicode: '\\u29E1' },\n { tex: /\\\\lrtriangle/, unicode: '\\u25FF' },\n { tex: /\\\\lsqhook/, unicode: '\\u2ACD' },\n { tex: /\\\\ltlarr/, unicode: '\\u2976' },\n { tex: /\\\\ltquest/, unicode: '\\u2A7B' },\n { tex: /\\\\lvboxline/, unicode: '\\u23B8' },\n { tex: /\\\\lvzigzag/, unicode: '\\u29D8' },\n { tex: /\\\\Lvzigzag/, unicode: '\\u29DA' },\n { tex: /\\\\MapsDown/, unicode: '\\u21A7' },\n { tex: /\\\\mapsfrom/, unicode: '\\u21A4' },\n { tex: /\\\\Mapsfrom/, unicode: '\\u2906' },\n { tex: /\\\\Mapsto/, unicode: '\\u2907' },\n { tex: /\\\\mbfDigamma/, unicode: '\\uD835\\uDFCA' },\n { tex: /\\\\mbfdigamma/, unicode: '\\uD835\\uDFCB' },\n { tex: /\\\\mdblkdiamond/, unicode: '\\u2B25' },\n { tex: /\\\\mdblklozenge/, unicode: '\\u2B27' },\n { tex: /\\\\mdsmblksquare/, unicode: '\\u25FE' },\n { tex: /\\\\mdsmwhtcircle/, unicode: '\\u26AC' },\n { tex: /\\\\mdsmwhtsquare/, unicode: '\\u25FD' },\n { tex: /\\\\mdwhtdiamond/, unicode: '\\u2B26' },\n { tex: /\\\\mdwhtlozenge/, unicode: '\\u2B28' },\n { tex: /\\\\measangledltosw/, unicode: '\\u29AF' },\n { tex: /\\\\measangledrtose/, unicode: '\\u29AE' },\n { tex: /\\\\measangleldtosw/, unicode: '\\u29AB' },\n { tex: /\\\\measanglelutonw/, unicode: '\\u29A9' },\n { tex: /\\\\measanglerdtose/, unicode: '\\u29AA' },\n { tex: /\\\\measanglerutone/, unicode: '\\u29A8' },\n { tex: /\\\\measangleultonw/, unicode: '\\u29AD' },\n { tex: /\\\\measangleurtone/, unicode: '\\u29AC' },\n { tex: /\\\\measeq/, unicode: '\\u225E' },\n { tex: /\\\\measuredangleleft/, unicode: '\\u299B' },\n { tex: /\\\\measuredangle/, unicode: '\\u2221' },\n { tex: /\\\\medblackstar/, unicode: '\\u2B51' },\n { tex: /\\\\medbullet/, unicode: '\\u26AB' },\n { tex: /\\\\medcirc/, unicode: '\\u26AA' },\n { tex: /\\\\medwhitestar/, unicode: '\\u2B50' },\n { tex: /\\\\mercury/, unicode: '\\u263F' },\n { tex: /\\\\midbarvee/, unicode: '\\u2A5D' },\n { tex: /\\\\midbarwedge/, unicode: '\\u2A5C' },\n { tex: /\\\\midcir/, unicode: '\\u2AF0' },\n { tex: /\\\\minusfdots/, unicode: '\\u2A2B' },\n { tex: /\\\\minusrdots/, unicode: '\\u2A2C' },\n { tex: /\\\\mkern1mu/, unicode: '\\u200A' },\n { tex: /\\\\:|\\\\mkern4mu/, unicode: '\\u205F' },\n { tex: /\\\\modtwosum/, unicode: '\\u2A0A' },\n { tex: /\\\\multimapboth/, unicode: '\\u29DF' },\n { tex: /\\\\multimapinv/, unicode: '\\u27DC' },\n { tex: /\\\\multimap/, unicode: '\\u22B8' },\n { tex: /\\\\natural/, unicode: '\\u266E' },\n { tex: /\\\\nearrow/, unicode: '\\u2197' },\n { tex: /\\\\Nearrow/, unicode: '\\u21D7' },\n { tex: /\\\\neovnwarrow/, unicode: '\\u2931' },\n { tex: /\\\\neovsearrow/, unicode: '\\u292E' },\n { tex: /\\\\neptune/, unicode: '\\u2646' },\n { tex: /\\\\NestedGreaterGreater/, unicode: '\\u2AA2' },\n { tex: /\\\\NestedLessLess/, unicode: '\\u2AA1' },\n { tex: /\\\\neswarrow/, unicode: '\\u2922' },\n { tex: /\\\\nexists/, unicode: '\\u2204' },\n { tex: /\\\\nHdownarrow/, unicode: '\\u21DF' },\n { tex: /\\\\nHuparrow/, unicode: '\\u21DE' },\n { tex: /\\\\nhVvert/, unicode: '\\u2AF5' },\n { tex: /\\\\nleftarrow/, unicode: '\\u219A' },\n { tex: /\\\\nLeftarrow/, unicode: '\\u21CD' },\n { tex: /\\\\nleftrightarrow/, unicode: '\\u21AE' },\n { tex: /\\\\nLeftrightarrow/, unicode: '\\u21CE' },\n { tex: /\\\\nolinebreak/, unicode: '\\u2060' },\n { tex: /\\\\not\\\\approx/, unicode: '\\u2249' },\n { tex: /\\\\notbackslash/, unicode: '\\u2340' },\n { tex: /\\\\not\\\\cong/, unicode: '\\u2247' },\n { tex: /\\\\not\\\\equiv/, unicode: '\\u2262' },\n { tex: /\\\\not\\\\geq/, unicode: '\\u2271' },\n { tex: /\\\\notgreaterless/, unicode: '\\u2279' },\n { tex: /\\\\not\\\\in/, unicode: '\\u2209' },\n { tex: /\\\\not\\\\kern-0\\.3em\\\\times/, unicode: '\\u226D' },\n { tex: /\\\\not\\\\leq/, unicode: '\\u2270' },\n { tex: /\\\\notlessgreater/, unicode: '\\u2278' },\n { tex: /\\\\not\\\\ni/, unicode: '\\u220C' },\n { tex: /\\\\not\\\\prec/, unicode: '\\u2280' },\n { tex: /\\\\not\\\\simeq/, unicode: '\\u2244' },\n { tex: /\\\\not\\\\sim/, unicode: '\\u2241' },\n { tex: /\\\\notslash/, unicode: '\\u233F' },\n { tex: /\\\\not\\\\sqsubseteq/, unicode: '\\u22E2' },\n { tex: /\\\\not\\\\sqsupseteq/, unicode: '\\u22E3' },\n { tex: /\\\\not\\\\subseteq/, unicode: '\\u2288' },\n { tex: /\\\\not\\\\subset/, unicode: '\\u2284' },\n { tex: /\\\\not\\\\succ/, unicode: '\\u2281' },\n { tex: /\\\\not\\\\supseteq/, unicode: '\\u2289' },\n { tex: /\\\\not\\\\supset/, unicode: '\\u2285' },\n { tex: /\\\\not =/, unicode: '\\u2260' },\n { tex: /\\\\nparallel/, unicode: '\\u2226' },\n { tex: /\\\\npolint/, unicode: '\\u2A14' },\n { tex: /\\\\npreceq/, unicode: '\\u22E0' },\n { tex: /\\\\nrightarrow/, unicode: '\\u219B' },\n { tex: /\\\\nRightarrow/, unicode: '\\u21CF' },\n { tex: /\\\\nsucceq/, unicode: '\\u22E1' },\n { tex: /\\\\ntrianglelefteq/, unicode: '\\u22EC' },\n { tex: /\\\\ntriangleleft/, unicode: '\\u22EA' },\n { tex: /\\\\ntrianglerighteq/, unicode: '\\u22ED' },\n { tex: /\\\\ntriangleright/, unicode: '\\u22EB' },\n { tex: /\\\\nvdash/, unicode: '\\u22AC' },\n { tex: /\\\\nvDash/, unicode: '\\u22AD' },\n { tex: /\\\\nVdash/, unicode: '\\u22AE' },\n { tex: /\\\\nVDash/, unicode: '\\u22AF' },\n { tex: /\\\\nvinfty/, unicode: '\\u29DE' },\n { tex: /\\\\nvleftarrowtail/, unicode: '\\u2B39' },\n { tex: /\\\\nVleftarrowtail/, unicode: '\\u2B3A' },\n { tex: /\\\\nvleftarrow/, unicode: '\\u21F7' },\n { tex: /\\\\nVleftarrow/, unicode: '\\u21FA' },\n { tex: /\\\\nvLeftarrow/, unicode: '\\u2902' },\n { tex: /\\\\nvleftrightarrow/, unicode: '\\u21F9' },\n { tex: /\\\\nVleftrightarrow/, unicode: '\\u21FC' },\n { tex: /\\\\nvLeftrightarrow/, unicode: '\\u2904' },\n { tex: /\\\\nvRightarrow/, unicode: '\\u2903' },\n { tex: /\\\\nvtwoheadleftarrowtail/, unicode: '\\u2B3C' },\n { tex: /\\\\nVtwoheadleftarrowtail/, unicode: '\\u2B3D' },\n { tex: /\\\\nvtwoheadleftarrow/, unicode: '\\u2B34' },\n { tex: /\\\\nVtwoheadleftarrow/, unicode: '\\u2B35' },\n { tex: /\\\\nvtwoheadrightarrowtail/, unicode: '\\u2917' },\n { tex: /\\\\nVtwoheadrightarrowtail/, unicode: '\\u2918' },\n { tex: /\\\\nVtwoheadrightarrow/, unicode: '\\u2901' },\n { tex: /\\\\nwarrow/, unicode: '\\u2196' },\n { tex: /\\\\Nwarrow/, unicode: '\\u21D6' },\n { tex: /\\\\nwovnearrow/, unicode: '\\u2932' },\n { tex: /\\\\nwsearrow/, unicode: '\\u2921' },\n { tex: /\\\\obrbrak/, unicode: '\\u23E0' },\n { tex: /\\\\ocommatopright/, unicode: '\\u0315' },\n { tex: /\\\\odotslashdot/, unicode: '\\u29BC' },\n { tex: /\\\\olcross/, unicode: '\\u29BB' },\n { tex: /\\\\ominus/, unicode: '\\u2296' },\n { tex: /\\{\\\\'\\{\\}O\\}|\\\\'\\{\\}O/, unicode: '\\u038C' },\n { tex: /\\\\openbracketleft/, unicode: '\\u301A' },\n { tex: /\\\\openbracketright/, unicode: '\\u301B' },\n { tex: /\\\\original/, unicode: '\\u22B6' },\n { tex: /\\\\oslash/, unicode: '\\u2298' },\n { tex: /\\\\otimeshat/, unicode: '\\u2A36' },\n { tex: /\\\\otimes/, unicode: '\\u2297' },\n { tex: /\\\\Otimes/, unicode: '\\u2A37' },\n { tex: /\\\\oturnedcomma/, unicode: '\\u0312' },\n { tex: /\\\\overbrace/, unicode: '\\u23DE' },\n { tex: /\\\\overbracket/, unicode: '\\u23B4' },\n { tex: /\\\\overleftrightarrow/, unicode: '\\u20E1' },\n { tex: /\\\\overline/, unicode: '\\u0305' },\n { tex: /\\\\overparen/, unicode: '\\u23DC' },\n { tex: /\\\\ovhook/, unicode: '\\u0309' },\n { tex: /\\\\parallelogramblack/, unicode: '\\u25B0' },\n { tex: /\\\\parallel/, unicode: '\\u2225' },\n { tex: /\\\\parsim/, unicode: '\\u2AF3' },\n { tex: /\\\\partialmeetcontraction/, unicode: '\\u2AA3' },\n { tex: /\\\\partial/, unicode: '\\u2202' },\n { tex: /\\\\pentagonblack/, unicode: '\\u2B1F' },\n { tex: /\\\\pentagon/, unicode: '\\u2B20' },\n { tex: /\\\\perspcorrespond/, unicode: '\\u2306' },\n { tex: /\\\\Pi|\\\\P\\{i\\}/, unicode: '\\u03A0' },\n { tex: /\\\\Pisymbol\\{ppi020\\}\\{105\\}/, unicode: '\\u2A9E' },\n { tex: /\\\\Pisymbol\\{ppi020\\}\\{117\\}/, unicode: '\\u2A9D' },\n { tex: /\\\\Pisymbol\\{ppi022\\}\\{87\\}/, unicode: '\\u03D0' },\n { tex: /\\\\pitchfork/, unicode: '\\u22D4' },\n { tex: /\\\\Planckconst/, unicode: '\\u210E' },\n { tex: /\\\\pluseqq/, unicode: '\\u2A72' },\n { tex: /\\\\plushat/, unicode: '\\u2A23' },\n { tex: /\\\\plussim/, unicode: '\\u2A26' },\n { tex: /\\\\plussubtwo/, unicode: '\\u2A27' },\n { tex: /\\\\plustrif/, unicode: '\\u2A28' },\n { tex: /\\\\pointint/, unicode: '\\u2A15' },\n { tex: /\\\\postalmark/, unicode: '\\u3012' },\n { tex: /\\\\precapprox/, unicode: '\\u227E' },\n { tex: /\\\\preccurlyeq/, unicode: '\\u227C' },\n { tex: /\\\\precedesnotsimilar/, unicode: '\\u22E8' },\n { tex: /\\\\preceqq/, unicode: '\\u2AB3' },\n { tex: /\\\\preceq/, unicode: '\\u2AAF' },\n { tex: /\\\\precnapprox/, unicode: '\\u2AB9' },\n { tex: /\\\\precneqq/, unicode: '\\u2AB5' },\n { tex: /\\\\precneq/, unicode: '\\u2AB1' },\n { tex: /\\\\profline/, unicode: '\\u2312' },\n { tex: /\\\\profsurf/, unicode: '\\u2313' },\n { tex: /\\\\PropertyLine/, unicode: '\\u214A' },\n { tex: /\\\\propto/, unicode: '\\u221D' },\n { tex: /\\\\prurel/, unicode: '\\u22B0' },\n { tex: /\\\\pullback/, unicode: '\\u27D3' },\n { tex: /\\\\pushout/, unicode: '\\u27D4' },\n { tex: /\\\\quarternote/, unicode: '\\u2669' },\n { tex: /\\\\Question/, unicode: '\\u2047' },\n { tex: /\\\\radiation/, unicode: '\\u2622' },\n { tex: /\\\\rangledot/, unicode: '\\u2992' },\n { tex: /\\\\rangledownzigzagarrow/, unicode: '\\u237C' },\n { tex: /\\\\rblkbrbrak/, unicode: '\\u2998' },\n { tex: /\\\\rbracelend/, unicode: '\\u23AD' },\n { tex: /\\\\rbracemid/, unicode: '\\u23AC' },\n { tex: /\\\\rbraceuend/, unicode: '\\u23AB' },\n { tex: /\\\\rbrace/, unicode: '\\\\}' },\n { tex: /\\\\rBrace/, unicode: '\\u2984' },\n { tex: /\\\\rbrackextender/, unicode: '\\u23A5' },\n { tex: /\\\\rbracklend/, unicode: '\\u23A6' },\n { tex: /\\\\rbracklrtick/, unicode: '\\u298E' },\n { tex: /\\\\rbrackubar/, unicode: '\\u298C' },\n { tex: /\\\\rbrackuend/, unicode: '\\u23A4' },\n { tex: /\\\\rbrackurtick/, unicode: '\\u2990' },\n { tex: /\\\\rbrbrak/, unicode: '\\u2773' },\n { tex: /\\\\Rbrbrak/, unicode: '\\u27ED' },\n { tex: /\\\\rcurvyangle/, unicode: '\\u29FD' },\n { tex: /\\\\rdiagovfdiag/, unicode: '\\u292B' },\n { tex: /\\\\rdiagovsearrow/, unicode: '\\u2930' },\n { tex: /\\\\recorder/, unicode: '\\u2315' },\n { tex: /\\\\recycle/, unicode: '\\u267B' },\n { tex: /\\\\revangleubar/, unicode: '\\u29A5' },\n { tex: /\\\\revangle/, unicode: '\\u29A3' },\n { tex: /\\\\revemptyset/, unicode: '\\u29B0' },\n { tex: /\\\\ReverseUpEquilibrium/, unicode: '\\u296F' },\n { tex: /\\\\revnmid/, unicode: '\\u2AEE' },\n { tex: /\\\\rfbowtie/, unicode: '\\u29D2' },\n { tex: /\\\\rftimes/, unicode: '\\u29D5' },\n { tex: /\\\\rgroup/, unicode: '\\u27EF' },\n { tex: /\\\\rightanglearc/, unicode: '\\u22BE' },\n { tex: /\\\\rightanglemdot/, unicode: '\\u299D' },\n { tex: /\\\\rightangle/, unicode: '\\u221F' },\n { tex: /\\\\rightarrowapprox/, unicode: '\\u2975' },\n { tex: /\\\\rightarrowbackapprox/, unicode: '\\u2B48' },\n { tex: /\\\\RightArrowBar/, unicode: '\\u21E5' },\n { tex: /\\\\rightarrowbsimilar/, unicode: '\\u2B4C' },\n { tex: /\\\\rightarrowdiamond/, unicode: '\\u291E' },\n { tex: /\\\\rightarrowgtr/, unicode: '\\u2B43' },\n { tex: /\\\\rightarrowonoplus/, unicode: '\\u27F4' },\n { tex: /\\\\rightarrowplus/, unicode: '\\u2945' },\n { tex: /\\\\rightarrowsimilar/, unicode: '\\u2974' },\n { tex: /\\\\rightarrowsupset/, unicode: '\\u2B44' },\n { tex: /\\\\rightarrowtail/, unicode: '\\u21A3' },\n { tex: /\\\\rightarrowtriangle/, unicode: '\\u21FE' },\n { tex: /\\\\rightarrow/, unicode: '\\u2192' },\n { tex: /\\\\Rightarrow/, unicode: '\\u21D2' },\n { tex: /\\\\rightbarharpoon/, unicode: '\\u296C' },\n { tex: /\\\\rightbkarrow/, unicode: '\\u290D' },\n { tex: /\\\\rightdbltail/, unicode: '\\u291C' },\n { tex: /\\\\rightdotarrow/, unicode: '\\u2911' },\n { tex: /\\\\RightDownTeeVector/, unicode: '\\u295D' },\n { tex: /\\\\RightDownVectorBar/, unicode: '\\u2955' },\n { tex: /\\\\rightharpoondown/, unicode: '\\u21C1' },\n { tex: /\\\\rightharpoonup/, unicode: '\\u21C0' },\n { tex: /\\\\rightleftarrows/, unicode: '\\u21C4' },\n { tex: /\\\\rightleftharpoonsdown/, unicode: '\\u2969' },\n { tex: /\\\\rightleftharpoons/, unicode: '\\u21CC' },\n { tex: /\\\\rightleftharpoonsup/, unicode: '\\u2968' },\n { tex: /\\\\rightleftharpoon/, unicode: '\\u294B' },\n { tex: /\\\\rightmoon/, unicode: '\\u263D' },\n { tex: /\\\\rightouterjoin/, unicode: '\\u27D6' },\n { tex: /\\\\rightpentagonblack/, unicode: '\\u2B53' },\n { tex: /\\\\rightpentagon/, unicode: '\\u2B54' },\n { tex: /\\\\rightrightarrows/, unicode: '\\u21C9' },\n { tex: /\\\\rightrightharpoons/, unicode: '\\u2964' },\n { tex: /\\\\rightslice/, unicode: '\\u2AA7' },\n { tex: /\\\\rightsquigarrow/, unicode: '\\u21DD' },\n { tex: /\\\\righttail/, unicode: '\\u291A' },\n { tex: /\\\\RightTeeVector/, unicode: '\\u295B' },\n { tex: /\\\\rightthreearrows/, unicode: '\\u21F6' },\n { tex: /\\\\rightthreetimes/, unicode: '\\u22CC' },\n { tex: /\\\\RightTriangleBar/, unicode: '\\u29D0' },\n { tex: /\\\\RightUpDownVector/, unicode: '\\u294F' },\n { tex: /\\\\RightUpTeeVector/, unicode: '\\u295C' },\n { tex: /\\\\RightUpVectorBar/, unicode: '\\u2954' },\n { tex: /\\\\RightVectorBar/, unicode: '\\u2953' },\n { tex: /\\\\rightwhitearrow/, unicode: '\\u21E8' },\n { tex: /\\\\ringplus/, unicode: '\\u2A22' },\n { tex: /\\\\risingdotseq/, unicode: '\\u2253' },\n { tex: /\\\\rmoustache/, unicode: '\\u23B1' },\n { tex: /\\\\RoundImplies/, unicode: '\\u2970' },\n { tex: /\\\\rparenextender/, unicode: '\\u239F' },\n { tex: /\\\\rparenlend/, unicode: '\\u23A0' },\n { tex: /\\\\Rparenless/, unicode: '\\u2996' },\n { tex: /\\\\rparenuend/, unicode: '\\u239E' },\n { tex: /\\\\rppolint/, unicode: '\\u2A12' },\n { tex: /\\\\rrbracket/, unicode: '\\u27E7' },\n { tex: /\\\\Rrightarrow/, unicode: '\\u21DB' },\n { tex: /\\\\RRightarrow/, unicode: '\\u2B46' },\n { tex: /\\\\rsolbar/, unicode: '\\u29F7' },\n { tex: /\\\\rsqhook/, unicode: '\\u2ACE' },\n { tex: /\\\\rtriltri/, unicode: '\\u29CE' },\n { tex: /\\\\rule\\{1em\\}\\{1pt\\}/, unicode: '\\u2015' },\n { tex: /\\\\RuleDelayed/, unicode: '\\u29F4' },\n { tex: /\\\\rvboxline/, unicode: '\\u23B9' },\n { tex: /\\\\rvzigzag/, unicode: '\\u29D9' },\n { tex: /\\\\Rvzigzag/, unicode: '\\u29DB' },\n { tex: /\\\\sagittarius/, unicode: '\\u2650' },\n { tex: /\\\\sansLmirrored/, unicode: '\\u2143' },\n { tex: /\\\\sansLturned/, unicode: '\\u2142' },\n { tex: /\\\\scorpio/, unicode: '\\u264F' },\n { tex: /\\\\scpolint/, unicode: '\\u2A13' },\n { tex: /\\\\scurel/, unicode: '\\u22B1' },\n { tex: /\\\\searrow/, unicode: '\\u2198' },\n { tex: /\\\\Searrow/, unicode: '\\u21D8' },\n { tex: /\\\\seovnearrow/, unicode: '\\u292D' },\n { tex: /\\\\setminus/, unicode: '\\u2216' },\n { tex: /\\\\shortdowntack/, unicode: '\\u2ADF' },\n { tex: /\\\\shortlefttack/, unicode: '\\u2ADE' },\n { tex: /\\\\shortuptack/, unicode: '\\u2AE0' },\n { tex: /\\\\shuffle/, unicode: '\\u29E2' },\n { tex: /\\\\similarleftarrow/, unicode: '\\u2B49' },\n { tex: /\\\\similarrightarrow/, unicode: '\\u2972' },\n { tex: /\\\\sim\\\\joinrel\\\\leadsto/, unicode: '\\u27FF' },\n { tex: /\\\\simminussim/, unicode: '\\u2A6C' },\n { tex: /\\\\simplus/, unicode: '\\u2A24' },\n { tex: /\\\\simrdots/, unicode: '\\u2A6B' },\n { tex: /\\\\sixteenthnote/, unicode: '\\u266C' },\n { tex: /\\\\smallin/, unicode: '\\u220A' },\n { tex: /\\\\smallni/, unicode: '\\u220D' },\n { tex: /\\\\smashtimes/, unicode: '\\u2A33' },\n { tex: /\\\\smblkdiamond/, unicode: '\\u2B29' },\n { tex: /\\\\smblklozenge/, unicode: '\\u2B2A' },\n { tex: /\\\\smeparsl/, unicode: '\\u29E4' },\n { tex: /\\\\smwhitestar/, unicode: '\\u2B52' },\n { tex: /\\\\smwhtcircle/, unicode: '\\u25E6' },\n { tex: /\\\\smwhtlozenge/, unicode: '\\u2B2B' },\n { tex: /\\\\smwhtsquare/, unicode: '\\u25AB' },\n { tex: /\\\\sphericalangle/, unicode: '\\u2222' },\n { tex: /\\\\sphericalangleup/, unicode: '\\u29A1' },\n { tex: /\\\\sqrint/, unicode: '\\u2A16' },\n { tex: /\\\\sqrt\\[3\\]/, unicode: '\\u221B' },\n { tex: /\\\\sqrt\\[4\\]/, unicode: '\\u221C' },\n { tex: /\\\\sqrtbottom/, unicode: '\\u23B7' },\n { tex: /\\\\sqsubseteq/, unicode: '\\u2291' },\n { tex: /\\\\sqsubsetneq/, unicode: '\\u22E4' },\n { tex: /\\\\sqsubset/, unicode: '\\u228F' },\n { tex: /\\\\sqsupseteq/, unicode: '\\u2292' },\n { tex: /\\\\sqsupset/, unicode: '\\u2290' },\n { tex: /\\\\squarebotblack/, unicode: '\\u2B13' },\n { tex: /\\\\squarecrossfill/, unicode: '\\u25A9' },\n { tex: /\\\\squarehfill/, unicode: '\\u25A4' },\n { tex: /\\\\squarehvfill/, unicode: '\\u25A6' },\n { tex: /\\\\squarellblack/, unicode: '\\u2B15' },\n { tex: /\\\\squarellquad/, unicode: '\\u25F1' },\n { tex: /\\\\squarelrquad/, unicode: '\\u25F2' },\n { tex: /\\\\squareneswfill/, unicode: '\\u25A8' },\n { tex: /\\\\squarenwsefill/, unicode: '\\u25A7' },\n { tex: /\\\\squaretopblack/, unicode: '\\u2B12' },\n { tex: /\\\\squareulblack/, unicode: '\\u25E9' },\n { tex: /\\\\squareulquad/, unicode: '\\u25F0' },\n { tex: /\\\\squareurblack/, unicode: '\\u2B14' },\n { tex: /\\\\squareurquad/, unicode: '\\u25F3' },\n { tex: /\\\\squarevfill/, unicode: '\\u25A5' },\n { tex: /\\\\squoval/, unicode: '\\u25A2' },\n { tex: /\\\\stackrel\\{\\*\\}\\{=\\}/, unicode: '\\u2A6E' },\n { tex: /\\\\starequal/, unicode: '\\u225B' },\n { tex: /\\\\steaming/, unicode: '\\u2615' },\n { tex: /\\\\Stigma/, unicode: '\\u03DA' },\n { tex: /\\\\stigma/, unicode: '\\u03DB' },\n { tex: /\\\\subedot/, unicode: '\\u2AC3' },\n { tex: /\\\\submult/, unicode: '\\u2AC1' },\n { tex: /\\\\subrarr/, unicode: '\\u2979' },\n { tex: /\\\\subsetapprox/, unicode: '\\u2AC9' },\n { tex: /\\\\subsetcirc/, unicode: '\\u27C3' },\n { tex: /\\\\subsetdot/, unicode: '\\u2ABD' },\n { tex: /\\\\subseteqq/, unicode: '\\u2AC5' },\n { tex: /\\\\subseteq/, unicode: '\\u2286' },\n { tex: /\\\\subsetneqq/, unicode: '\\u2ACB' },\n { tex: /\\\\subsetneq/, unicode: '\\u228A' },\n { tex: /\\\\subsetplus/, unicode: '\\u2ABF' },\n { tex: /\\\\subset/, unicode: '\\u2282' },\n { tex: /\\\\subsim/, unicode: '\\u2AC7' },\n { tex: /\\\\subsub/, unicode: '\\u2AD5' },\n { tex: /\\\\subsup/, unicode: '\\u2AD3' },\n { tex: /\\\\succapprox/, unicode: '\\u227F' },\n { tex: /\\\\succcurlyeq/, unicode: '\\u227D' },\n { tex: /\\\\succeqq/, unicode: '\\u2AB4' },\n { tex: /\\\\succeq/, unicode: '\\u2AB0' },\n { tex: /\\\\succnapprox/, unicode: '\\u2ABA' },\n { tex: /\\\\succneqq/, unicode: '\\u2AB6' },\n { tex: /\\\\succneq/, unicode: '\\u2AB2' },\n { tex: /\\\\succnsim/, unicode: '\\u22E9' },\n { tex: /\\\\sumbottom/, unicode: '\\u23B3' },\n { tex: /\\\\sumint/, unicode: '\\u2A0B' },\n { tex: /\\\\supdsub/, unicode: '\\u2AD8' },\n { tex: /\\\\supedot/, unicode: '\\u2AC4' },\n { tex: /\\\\suphsol/, unicode: '\\u27C9' },\n { tex: /\\\\suphsub/, unicode: '\\u2AD7' },\n { tex: /\\\\suplarr/, unicode: '\\u297B' },\n { tex: /\\\\supmult/, unicode: '\\u2AC2' },\n { tex: /\\\\supsetapprox/, unicode: '\\u2ACA' },\n { tex: /\\\\supsetcirc/, unicode: '\\u27C4' },\n { tex: /\\\\supsetdot/, unicode: '\\u2ABE' },\n { tex: /\\\\supseteqq/, unicode: '\\u2AC6' },\n { tex: /\\\\supseteq/, unicode: '\\u2287' },\n { tex: /\\\\supsetneqq/, unicode: '\\u2ACC' },\n { tex: /\\\\supsetneq/, unicode: '\\u228B' },\n { tex: /\\\\supsetplus/, unicode: '\\u2AC0' },\n { tex: /\\\\supset/, unicode: '\\u2283' },\n { tex: /\\\\supsim/, unicode: '\\u2AC8' },\n { tex: /\\\\supsub/, unicode: '\\u2AD4' },\n { tex: /\\\\supsup/, unicode: '\\u2AD6' },\n { tex: /\\\\surfintegral/, unicode: '\\u222F' },\n { tex: /\\\\swarrow/, unicode: '\\u2199' },\n { tex: /\\\\Swarrow/, unicode: '\\u21D9' },\n { tex: /\\\\talloblong/, unicode: '\\u2AFE' },\n { tex: /\\\\textasciiacute/, unicode: '\\xB4' },\n { tex: /\\\\textasciibreve/, unicode: '\\u02D8' },\n { tex: /\\\\textasciicaron/, unicode: '\\u02C7' },\n { tex: /\\\\textasciidieresis/, unicode: '\\xA8' },\n { tex: /\\\\textasciigrave/, unicode: '`' },\n { tex: /\\\\textasciimacron/, unicode: '\\xAF' },\n { tex: /\\\\textbrokenbar/, unicode: '\\xA6' },\n { tex: /\\\\textbullet/, unicode: '\\u2022' },\n { tex: /\\\\textcent/, unicode: '\\xA2' },\n { tex: /\\\\textcopyright/, unicode: '\\xA9' },\n { tex: /\\\\textcurrency/, unicode: '\\xA4' },\n { tex: /\\\\textdaggerdbl/, unicode: '\\u2021' },\n { tex: /\\\\textdagger/, unicode: '\\u2020' },\n { tex: /\\\\textdollar/, unicode: '\\\\$' },\n { tex: /\\\\textdoublepipe/, unicode: '\\u01C2' },\n { tex: /\\\\textemdash/, unicode: '\\u2014' },\n { tex: /\\\\textendash/, unicode: '\\u2013' },\n { tex: /\\\\textexclamdown/, unicode: '\\xA1' },\n { tex: /\\\\textfrac\\{1\\}\\{3\\}/, unicode: '\\u2153' },\n { tex: /\\\\textfrac\\{1\\}\\{5\\}/, unicode: '\\u2155' },\n { tex: /\\\\textfrac\\{1\\}\\{6\\}/, unicode: '\\u2159' },\n { tex: /\\\\textfrac\\{1\\}\\{8\\}/, unicode: '\\u215B' },\n { tex: /\\\\textfrac\\{2\\}\\{3\\}/, unicode: '\\u2154' },\n { tex: /\\\\textfrac\\{2\\}\\{5\\}/, unicode: '\\u2156' },\n { tex: /\\\\textfrac\\{3\\}\\{5\\}/, unicode: '\\u2157' },\n { tex: /\\\\textfrac\\{3\\}\\{8\\}/, unicode: '\\u215C' },\n { tex: /\\\\textfrac\\{4\\}\\{5\\}/, unicode: '\\u2158' },\n { tex: /\\\\textfrac\\{5\\}\\{6\\}/, unicode: '\\u215A' },\n { tex: /\\\\textfrac\\{5\\}\\{8\\}/, unicode: '\\u215D' },\n { tex: /\\\\textfrac\\{7\\}\\{8\\}/, unicode: '\\u215E' },\n { tex: /\\\\texthvlig/, unicode: '\\u0195' },\n { tex: /\\\\textmu/, unicode: '\\u03BC' },\n { tex: /\\\\textnrleg/, unicode: '\\u019E' },\n { tex: /\\\\textonehalf/, unicode: '\\xBD' },\n { tex: /\\\\textonequarter/, unicode: '\\xBC' },\n { tex: /\\\\textordfeminine/, unicode: '\\xAA' },\n { tex: /\\\\textordmasculine/, unicode: '\\xBA' },\n { tex: /\\\\textparagraph/, unicode: '\\xB6' },\n { tex: /\\\\textperiodcentered/, unicode: '\\u02D9' },\n { tex: /\\\\textpertenthousand/, unicode: '\\u2031' },\n { tex: /\\\\textperthousand/, unicode: '\\u2030' },\n { tex: /\\\\textphi/, unicode: '\\u0278' },\n { tex: /\\\\textquestiondown/, unicode: '\\xBF' },\n { tex: /\\\\textquotedblleft/, unicode: '\\u201C' },\n { tex: /\\\\textquotedblright/, unicode: '\\u201D' },\n { tex: /\\\\textquotesingle/, unicode: '\\'' },\n { tex: /\\\\textregistered/, unicode: '\\xAE' },\n { tex: /\\\\textsection/, unicode: '\\xA7' },\n { tex: /\\\\textsterling/, unicode: '\\xA3' },\n { tex: /\\\\texttheta/, unicode: '\\u03B8' },\n { tex: /\\\\textTheta/, unicode: '\\u03F4' },\n { tex: /\\\\textthreequarters/, unicode: '\\xBE' },\n { tex: /\\\\texttildelow/, unicode: '\\u02DC' },\n { tex: /\\\\texttimes/, unicode: '\\xD7' },\n { tex: /\\\\texttrademark/, unicode: '\\u2122' },\n { tex: /\\\\textturnk/, unicode: '\\u029E' },\n { tex: /\\\\textvartheta/, unicode: '\\u03D1' },\n { tex: /\\\\textvisiblespace/, unicode: '\\u2423' },\n { tex: /\\\\textyen/, unicode: '\\xA5' },\n { tex: /\\\\therefore/, unicode: '\\u2234' },\n { tex: /\\\\thermod/, unicode: '\\u29E7' },\n { tex: /\\\\threedangle/, unicode: '\\u27C0' },\n { tex: /\\\\threeunderdot/, unicode: '\\u20E8' },\n { tex: /\\\\TH|\\\\T\\{H\\}/, unicode: '\\xDE' },\n { tex: /\\\\tieinfty/, unicode: '\\u29DD' },\n { tex: /\\\\tildetrpl/, unicode: '\\u224B' },\n { tex: /\\\\timesbar/, unicode: '\\u2A31' },\n { tex: /\\\\tminus/, unicode: '\\u29FF' },\n { tex: /\\\\tone\\{11\\}/, unicode: '\\u02E9' },\n { tex: /\\\\tone\\{22\\}/, unicode: '\\u02E8' },\n { tex: /\\\\tone\\{33\\}/, unicode: '\\u02E7' },\n { tex: /\\\\tone\\{44\\}/, unicode: '\\u02E6' },\n { tex: /\\\\tone\\{55\\}/, unicode: '\\u02E5' },\n { tex: /\\\\topcir/, unicode: '\\u2AF1' },\n { tex: /\\\\topfork/, unicode: '\\u2ADA' },\n { tex: /\\\\topsemicircle/, unicode: '\\u25E0' },\n { tex: /\\\\trapezium/, unicode: '\\u23E2' },\n { tex: /\\\\trianglecdot/, unicode: '\\u25EC' },\n { tex: /\\\\triangledown/, unicode: '\\u25BF' },\n { tex: /\\\\triangleleftblack/, unicode: '\\u25ED' },\n { tex: /\\\\trianglelefteq/, unicode: '\\u22B4' },\n { tex: /\\\\triangleleft/, unicode: '\\u25C3' },\n { tex: /\\\\triangleminus/, unicode: '\\u2A3A' },\n { tex: /\\\\triangleplus/, unicode: '\\u2A39' },\n { tex: /\\\\triangleq/, unicode: '\\u225C' },\n { tex: /\\\\trianglerightblack/, unicode: '\\u25EE' },\n { tex: /\\\\trianglerighteq/, unicode: '\\u22B5' },\n { tex: /\\\\triangleright/, unicode: '\\u25B9' },\n { tex: /\\\\triangleserifs/, unicode: '\\u29CD' },\n { tex: /\\\\triangles/, unicode: '\\u29CC' },\n { tex: /\\\\triangletimes/, unicode: '\\u2A3B' },\n { tex: /\\\\tripleplus/, unicode: '\\u29FB' },\n { tex: /\\\\trslash/, unicode: '\\u2AFB' },\n { tex: /\\\\truestate/, unicode: '\\u22A7' },\n { tex: /\\\\turnangle/, unicode: '\\u29A2' },\n { tex: /\\\\turnednot/, unicode: '\\u2319' },\n { tex: /\\\\twocaps/, unicode: '\\u2A4B' },\n { tex: /\\\\twocups/, unicode: '\\u2A4A' },\n { tex: /\\\\twoheaddownarrow/, unicode: '\\u21A1' },\n { tex: /\\\\twoheadleftarrowtail/, unicode: '\\u2B3B' },\n { tex: /\\\\twoheadleftarrow/, unicode: '\\u219E' },\n { tex: /\\\\twoheadleftdbkarrow/, unicode: '\\u2B37' },\n { tex: /\\\\twoheadmapsfrom/, unicode: '\\u2B36' },\n { tex: /\\\\twoheadrightarrow/, unicode: '\\u21A0' },\n { tex: /\\\\twoheaduparrowcircle/, unicode: '\\u2949' },\n { tex: /\\\\twoheaduparrow/, unicode: '\\u219F' },\n { tex: /\\\\twolowline/, unicode: '\\u2017' },\n { tex: /\\\\twonotes/, unicode: '\\u266B' },\n { tex: /\\\\typecolon/, unicode: '\\u2982' },\n { tex: /\\\\ubrbrak/, unicode: '\\u23E1' },\n { tex: /\\\\ulblacktriangle/, unicode: '\\u25E4' },\n { tex: /\\\\ulcorner/, unicode: '\\u231C' },\n { tex: /\\\\ultriangle/, unicode: '\\u25F8' },\n { tex: /\\\\uminus/, unicode: '\\u2A41' },\n { tex: /\\\\underbar/, unicode: '\\u0331' },\n { tex: /\\\\underbrace/, unicode: '\\u23DF' },\n { tex: /\\\\underbracket/, unicode: '\\u23B5' },\n { tex: /\\\\underleftarrow/, unicode: '\\u20EE' },\n { tex: /\\\\underleftharpoondown/, unicode: '\\u20ED' },\n { tex: /\\\\underline/, unicode: '\\u0332' },\n { tex: /\\\\underparen/, unicode: '\\u23DD' },\n { tex: /\\\\underrightarrow/, unicode: '\\u20EF' },\n { tex: /\\\\underrightharpoondown/, unicode: '\\u20EC' },\n { tex: /\\{\\{\\/\\}\\\\!\\\\!\\{\\/\\}\\}/, unicode: '\\u2AFD' },\n { tex: /\\\\uparrowbarred/, unicode: '\\u2909' },\n { tex: /\\\\UpArrowBar/, unicode: '\\u2912' },\n { tex: /\\\\uparrowoncircle/, unicode: '\\u29BD' },\n { tex: /\\\\uparrow/, unicode: '\\u2191' },\n { tex: /\\\\Uparrow/, unicode: '\\u21D1' },\n { tex: /\\\\updasharrow/, unicode: '\\u21E1' },\n { tex: /\\\\updownarrowbar/, unicode: '\\u21A8' },\n { tex: /\\\\updownarrow/, unicode: '\\u2195' },\n { tex: /\\\\Updownarrow/, unicode: '\\u21D5' },\n { tex: /\\\\updownharpoonleftright/, unicode: '\\u294D' },\n { tex: /\\\\updownharpoonrightleft/, unicode: '\\u294C' },\n { tex: /\\\\UpEquilibrium/, unicode: '\\u296E' },\n { tex: /\\\\upfishtail/, unicode: '\\u297E' },\n { tex: /\\\\upharpoonleft/, unicode: '\\u21BF' },\n { tex: /\\\\upharpoonright/, unicode: '\\u21BE' },\n { tex: /\\\\uprightcurvearrow/, unicode: '\\u2934' },\n { tex: /\\\\Upsilon/, unicode: '\\u03A5' },\n { tex: /\\\\upsilon/, unicode: '\\u03C5' },\n { tex: /\\\\upslopeellipsis/, unicode: '\\u22F0' },\n { tex: /\\\\upuparrows/, unicode: '\\u21C8' },\n { tex: /\\\\upupharpoons/, unicode: '\\u2963' },\n { tex: /\\\\upwhitearrow/, unicode: '\\u21E7' },\n { tex: /\\\\urblacktriangle/, unicode: '\\u25E5' },\n { tex: /\\\\urcorner/, unicode: '\\u231D' },\n { tex: /\\\\urtriangle/, unicode: '\\u25F9' },\n { tex: /\\\\utilde/, unicode: '\\u0330' },\n { tex: /\\\\UUparrow/, unicode: '\\u27F0' },\n { tex: /\\\\Uuparrow/, unicode: '\\u290A' },\n { tex: /\\\\varcarriagereturn/, unicode: '\\u23CE' },\n { tex: /\\\\varclubsuit/, unicode: '\\u2667' },\n { tex: /\\\\varepsilon/, unicode: '\\u025B' },\n { tex: /\\\\varhexagonblack/, unicode: '\\u2B22' },\n { tex: /\\\\varhexagonlrbonds/, unicode: '\\u232C' },\n { tex: /\\\\varhexagon/, unicode: '\\u2B21' },\n { tex: /\\\\varisins/, unicode: '\\u22F3' },\n { tex: /\\\\varkappa/, unicode: '\\u03F0' },\n { tex: /\\\\varlrtriangle/, unicode: '\\u22BF' },\n { tex: /\\\\varniobar/, unicode: '\\u22FD' },\n { tex: /\\\\varnothing/, unicode: '\\u2205' },\n { tex: /\\\\varphi/, unicode: '\\u03C6' },\n { tex: /\\\\varprod/, unicode: '\\u2A09' },\n { tex: /\\\\varrho/, unicode: '\\u03F1' },\n { tex: /\\\\varsigma/, unicode: '\\u03C2' },\n { tex: /\\\\varspadesuit/, unicode: '\\u2664' },\n { tex: /\\\\vartriangleleft/, unicode: '\\u22B2' },\n { tex: /\\\\vartriangleright/, unicode: '\\u22B3' },\n { tex: /\\\\vartriangle/, unicode: '\\u25B5' },\n { tex: /\\\\varVdash/, unicode: '\\u2AE6' },\n { tex: /\\\\varveebar/, unicode: '\\u2A61' },\n { tex: /\\\\vbraceextender/, unicode: '\\u23AA' },\n { tex: /\\\\vDdash/, unicode: '\\u2AE2' },\n { tex: /\\\\veebar/, unicode: '\\u22BB' },\n { tex: /\\\\veemidvert/, unicode: '\\u2A5B' },\n { tex: /\\\\veeodot/, unicode: '\\u2A52' },\n { tex: /\\\\veeonwedge/, unicode: '\\u2A59' },\n { tex: /\\\\vertoverlay/, unicode: '\\u20D2' },\n { tex: /\\\\verymuchgreater/, unicode: '\\u22D9' },\n { tex: /\\\\verymuchless/, unicode: '\\u22D8' },\n { tex: /\\\\viewdata/, unicode: '\\u2317' },\n { tex: /\\\\vlongdash/, unicode: '\\u27DD' },\n { tex: /\\\\volintegral/, unicode: '\\u2230' },\n { tex: /\\\\vphantom\\\\{/, unicode: '' },\n { tex: /\\\\vrectangleblack/, unicode: '\\u25AE' },\n { tex: /\\\\Vvdash/, unicode: '\\u22AA' },\n { tex: /\\\\vysmblksquare/, unicode: '\\u2B1D' },\n { tex: /\\\\vysmwhtsquare/, unicode: '\\u2B1E' },\n { tex: /\\\\vzigzag/, unicode: '\\u299A' },\n { tex: /\\\\warning/, unicode: '\\u26A0' },\n { tex: /\\\\wasylozenge/, unicode: '\\u2311' },\n { tex: /\\\\wedgedot/, unicode: '\\u27D1' },\n { tex: /\\\\wedgedoublebar/, unicode: '\\u2A60' },\n { tex: /\\\\wedgemidvert/, unicode: '\\u2A5A' },\n { tex: /\\\\wedgeodot/, unicode: '\\u2A51' },\n { tex: /\\\\whitearrowupfrombar/, unicode: '\\u21EA' },\n { tex: /\\\\whiteinwhitetriangle/, unicode: '\\u27C1' },\n { tex: /\\\\whitepointerleft/, unicode: '\\u25C5' },\n { tex: /\\\\whitepointerright/, unicode: '\\u25BB' },\n { tex: /\\\\whitesquaretickleft/, unicode: '\\u27E4' },\n { tex: /\\\\whitesquaretickright/, unicode: '\\u27E5' },\n { tex: /\\\\whthorzoval/, unicode: '\\u2B2D' },\n { tex: /\\\\whtvertoval/, unicode: '\\u2B2F' },\n { tex: /\\\\wideangledown/, unicode: '\\u29A6' },\n { tex: /\\\\wideangleup/, unicode: '\\u29A7' },\n { tex: /\\\\widebridgeabove/, unicode: '\\u20E9' },\n { tex: /\\\\Xi|\\\\X\\{i\\}/, unicode: '\\u039E' },\n { tex: /\\\\yinyang/, unicode: '\\u262F' },\n { tex: /\\\\zproject/, unicode: '\\u2A21' },\n\n { tex: /\\\\circeq/, unicode: '\\u2257' },\n { tex: /\\\\OE|\\\\O\\{E\\}/, unicode: '\\u0152' },\n { tex: /\\\\NG|\\\\N\\{G\\}/, unicode: '\\u014A' },\n { tex: /\\\\eqcirc/, unicode: '\\u2256' },\n { tex: /\\\\lfloor/, unicode: '\\u230A' },\n { tex: /\\\\rfloor/, unicode: '\\u230B' },\n { tex: /\\\\invneg/, unicode: '\\u2310' },\n { tex: /\\\\niobar/, unicode: '\\u22FE' },\n { tex: /\\\\varnis/, unicode: '\\u22FB' },\n { tex: /\\\\invamp/, unicode: '\\u214B' },\n { tex: /\\\\inttop/, unicode: '\\u2320' },\n { tex: /\\\\isinvb/, unicode: '\\u22F8' },\n { tex: /\\\\langle/, unicode: '\\u2329' },\n { tex: /\\\\rangle/, unicode: '\\u232A' },\n { tex: /\\\\topbot/, unicode: '\\u2336' },\n { tex: /\\\\APLinv/, unicode: '\\u2339' },\n { tex: /\\\\MapsUp/, unicode: '\\u21A5' },\n { tex: /\\\\mapsto/, unicode: '\\u21A6' },\n { tex: /\\\\APLlog/, unicode: '\\u235F' },\n { tex: /\\\\daleth/, unicode: '\\u2138' },\n { tex: /\\\\sumtop/, unicode: '\\u23B2' },\n { tex: /\\\\diagup/, unicode: '\\u2571' },\n { tex: /\\\\square/, unicode: '\\u25A1' },\n { tex: /\\\\hslash/, unicode: '\\u210F' },\n { tex: /\\\\bumpeq/, unicode: '\\u224F' },\n { tex: /\\\\boxbar/, unicode: '\\u25EB' },\n { tex: /\\\\Square/, unicode: '\\u2610' },\n { tex: /\\\\danger/, unicode: '\\u2621' },\n { tex: /\\\\Bumpeq/, unicode: '\\u224E' },\n { tex: /\\\\ddddot/, unicode: '\\u20DC' },\n { tex: /\\\\smiley/, unicode: '\\u263A' },\n { tex: /\\\\eqless/, unicode: '\\u22DC' },\n { tex: /\\\\gtrdot/, unicode: '\\u22D7' },\n { tex: /\\\\Exclam/, unicode: '\\u203C' },\n { tex: /\\\\saturn/, unicode: '\\u2644' },\n { tex: /\\\\uranus/, unicode: '\\u2645' },\n { tex: /\\\\taurus/, unicode: '\\u2649' },\n { tex: /\\\\gemini/, unicode: '\\u264A' },\n { tex: /\\\\cancer/, unicode: '\\u264B' },\n { tex: /\\\\pisces/, unicode: '\\u2653' },\n { tex: /\\\\Supset/, unicode: '\\u22D1' },\n { tex: /\\\\Subset/, unicode: '\\u22D0' },\n { tex: /\\\\diceii/, unicode: '\\u2681' },\n { tex: /\\\\diceiv/, unicode: '\\u2683' },\n { tex: /\\\\dicevi/, unicode: '\\u2685' },\n { tex: /\\\\anchor/, unicode: '\\u2693' },\n { tex: /\\\\swords/, unicode: '\\u2694' },\n { tex: /\\\\DJ|\\\\D\\{J\\}/, unicode: '\\u0110' },\n { tex: /\\\\neuter/, unicode: '\\u26B2' },\n { tex: /\\\\veedot/, unicode: '\\u27C7' },\n { tex: /\\\\rtimes/, unicode: '\\u22CA' },\n { tex: /\\\\ltimes/, unicode: '\\u22C9' },\n { tex: /\\\\bowtie/, unicode: '\\u22C8' },\n { tex: /\\\\bigbot/, unicode: '\\u27D8' },\n { tex: /\\\\cirbot/, unicode: '\\u27DF' },\n { tex: /\\\\LaTeX/, unicode: 'L$^A$T$_E$X' },\n { tex: /\\\\delta/, unicode: '\\u03B4' },\n { tex: /\\\\image/, unicode: '\\u22B7' },\n { tex: /\\\\llarc/, unicode: '\\u25DF' },\n { tex: /\\\\simeq/, unicode: '\\u2243' },\n { tex: /\\\\eqdef/, unicode: '\\u225D' },\n { tex: /\\\\vBarv/, unicode: '\\u2AE9' },\n { tex: /\\\\ElzOr/, unicode: '\\u2A54' },\n { tex: /\\\\equiv/, unicode: '\\u2261' },\n { tex: /\\\\space/, unicode: ' ' },\n { tex: /\\\\isins/, unicode: '\\u22F4' },\n { tex: /\\\\lnsim/, unicode: '\\u22E6' },\n { tex: /\\\\Elzxl/, unicode: '\\u0335' },\n { tex: /\\\\Theta/, unicode: '\\u0398' },\n { tex: /\\\\barin/, unicode: '\\u22F6' },\n { tex: /\\\\kappa/, unicode: '\\u03BA' },\n { tex: /\\\\lblot/, unicode: '\\u2989' },\n { tex: /\\\\rblot/, unicode: '\\u298A' },\n { tex: /\\\\frown/, unicode: '\\u2322' },\n { tex: /\\\\earth/, unicode: '\\u2641' },\n { tex: /\\\\Angle/, unicode: '\\u299C' },\n { tex: /\\\\Sqcup/, unicode: '\\u2A4F' },\n { tex: /\\\\Sqcap/, unicode: '\\u2A4E' },\n { tex: /\\\\nhpar/, unicode: '\\u2AF2' },\n { tex: /\\\\operp/, unicode: '\\u29B9' },\n { tex: /\\\\sigma/, unicode: '\\u03C3' },\n { tex: /\\\\csube/, unicode: '\\u2AD1' },\n { tex: /\\\\csupe/, unicode: '\\u2AD2' },\n { tex: /\\\\house/, unicode: '\\u2302' },\n { tex: /\\\\forks/, unicode: '\\u2ADC' },\n { tex: /\\\\Elzxh/, unicode: '\\u0127' },\n { tex: /\\\\strns/, unicode: '\\u23E4' },\n { tex: /\\\\eqgtr/, unicode: '\\u22DD' },\n { tex: /\\\\forkv/, unicode: '\\u2AD9' },\n { tex: /\\\\relax/, unicode: '' },\n { tex: /\\\\amalg/, unicode: '\\u2A3F' },\n { tex: /\\\\infty/, unicode: '\\u221E' },\n { tex: /\\\\VDash/, unicode: '\\u22AB' },\n { tex: /\\\\fltns/, unicode: '\\u23E5' },\n { tex: /\\\\disin/, unicode: '\\u22F2' },\n { tex: /\\\\uplus/, unicode: '\\u228E' },\n { tex: /\\\\angle/, unicode: '\\u2220' },\n { tex: /\\\\pluto/, unicode: '\\u2647' },\n { tex: /\\\\Vdash/, unicode: '\\u22A9' },\n { tex: /\\\\cdots/, unicode: '\\u22EF' },\n { tex: /\\\\lceil/, unicode: '\\u2308' },\n { tex: /\\\\sqcap/, unicode: '\\u2293' },\n { tex: /\\\\smile/, unicode: '\\u2323' },\n { tex: /\\\\omega/, unicode: '\\u03C9' },\n { tex: /\\\\vdots/, unicode: '\\u22EE' },\n { tex: /\\\\arceq/, unicode: '\\u2258' },\n { tex: /\\\\dashv/, unicode: '\\u22A3' },\n { tex: /\\\\vdash/, unicode: '\\u22A2' },\n { tex: /\\\\skull/, unicode: '\\u2620' },\n { tex: /\\\\rceil/, unicode: '\\u2309' },\n { tex: /\\\\virgo/, unicode: '\\u264D' },\n { tex: /\\\\perps/, unicode: '\\u2AE1' },\n { tex: /\\\\zhide/, unicode: '\\u29F9' },\n { tex: /\\\\tplus/, unicode: '\\u29FE' },\n { tex: /\\\\ldots/, unicode: '\\u2026' },\n { tex: /\\\\zpipe/, unicode: '\\u2A20' },\n { tex: /\\\\dicei/, unicode: '\\u2680' },\n { tex: /\\\\venus/, unicode: '\\u2640' },\n { tex: /\\\\varpi/, unicode: '\\u03D6' },\n { tex: /\\\\Elzrh/, unicode: '\\u0322' },\n { tex: /\\\\Qoppa/, unicode: '\\u03D8' },\n { tex: /\\\\aries/, unicode: '\\u2648' },\n { tex: /\\\\upint/, unicode: '\\u2A1B' },\n { tex: /\\\\dddot/, unicode: '\\u20DB' },\n { tex: /\\\\sqcup/, unicode: '\\u2294' },\n { tex: /\\\\qoppa/, unicode: '\\u03D9' },\n { tex: /\\\\Koppa/, unicode: '\\u03DE' },\n { tex: /\\\\awint/, unicode: '\\u2A11' },\n { tex: /\\\\koppa/, unicode: '\\u03DF' },\n { tex: /\\\\Colon/, unicode: '\\u2237' },\n { tex: /\\\\gescc/, unicode: '\\u2AA9' },\n { tex: /\\\\oplus/, unicode: '\\u2295' },\n { tex: /\\\\asymp/, unicode: '\\u224D' },\n { tex: /\\\\isinE/, unicode: '\\u22F9' },\n { tex: /\\\\Elzrl/, unicode: '\\u027C' },\n { tex: /\\\\Sampi/, unicode: '\\u03E0' },\n { tex: /\\\\sampi/, unicode: '\\u03E1' },\n { tex: /\\\\doteq/, unicode: '\\u2250' },\n { tex: /\\\\slash/, unicode: '\\u2215' },\n { tex: /\\\\gnsim/, unicode: '\\u22E7' },\n { tex: /\\\\libra/, unicode: '\\u264E' },\n { tex: /\\\\gsiml/, unicode: '\\u2A90' },\n { tex: /\\\\wedge/, unicode: '\\u2227' },\n { tex: /\\\\dbend/, unicode: '\\uFFFD' },\n { tex: /\\\\dashV/, unicode: '\\u2AE3' },\n { tex: /\\\\Dashv/, unicode: '\\u2AE4' },\n { tex: /\\\\DashV/, unicode: '\\u2AE5' },\n { tex: /\\\\Sigma/, unicode: '\\u03A3' },\n { tex: /\\\\lsimg/, unicode: '\\u2A8F' },\n { tex: /\\\\gsime/, unicode: '\\u2A8E' },\n { tex: /\\\\lsime/, unicode: '\\u2A8D' },\n { tex: /\\\\Equiv/, unicode: '\\u2263' },\n { tex: /\\\\dicev/, unicode: '\\u2684' },\n { tex: /\\\\Gamma/, unicode: '\\u0393' },\n { tex: /\\\\gtcir/, unicode: '\\u2A7A' },\n { tex: /\\\\ltcir/, unicode: '\\u2A79' },\n { tex: /\\\\jmath/, unicode: '\\u0237' },\n { tex: /\\\\ularc/, unicode: '\\u25DC' },\n { tex: /\\\\gneqq/, unicode: '\\u2269' },\n { tex: /\\\\gimel/, unicode: '\\u2137' },\n { tex: /\\\\lneqq/, unicode: '\\u2268' },\n { tex: /\\\\Omega/, unicode: '\\u03A9' },\n { tex: /\\\\Equal/, unicode: '\\u2A75' },\n { tex: /\\\\aleph/, unicode: '\\u2135' },\n { tex: /\\\\nabla/, unicode: '\\u2207' },\n { tex: /\\\\lescc/, unicode: '\\u2AA8' },\n { tex: /\\\\simgE/, unicode: '\\u2AA0' },\n { tex: /\\\\sharp/, unicode: '\\u266F' },\n { tex: /\\\\imath/, unicode: '\\uD835\\uDEA4' },\n { tex: /\\\\simlE/, unicode: '\\u2A9F' },\n { tex: /\\\\Delta/, unicode: '\\u0394' },\n { tex: /\\\\urarc/, unicode: '\\u25DD' },\n { tex: /\\\\alpha/, unicode: '\\u03B1' },\n { tex: /\\\\gamma/, unicode: '\\u03B3' },\n { tex: /\\\\eqdot/, unicode: '\\u2A66' },\n { tex: /\\\\Euler/, unicode: '\\u2107' },\n { tex: /\\\\lrarc/, unicode: '\\u25DE' },\n { tex: /\\\\late/, unicode: '\\u2AAD' },\n { tex: /\\\\hash/, unicode: '\\u22D5' },\n { tex: /\\\\circ/, unicode: '\\u2218' },\n { tex: /\\\\Game/, unicode: '\\u2141' },\n { tex: /\\\\surd/, unicode: '\\u221A' },\n { tex: /\\\\Lbag/, unicode: '\\u27C5' },\n { tex: /\\\\beth/, unicode: '\\u2136' },\n { tex: /\\\\lnot/, unicode: '\\xAC' },\n { tex: /\\\\Finv/, unicode: '\\u2132' },\n { tex: /\\\\csub/, unicode: '\\u2ACF' },\n { tex: /\\\\csup/, unicode: '\\u2AD0' },\n { tex: /\\\\succ/, unicode: '\\u227B' },\n { tex: /\\\\prec/, unicode: '\\u227A' },\n { tex: /\\\\Vert/, unicode: '\\u2016' },\n { tex: /\\\\nmid/, unicode: '\\u2224' },\n { tex: /\\\\not</, unicode: '\\u226E' },\n { tex: /\\\\dlsh/, unicode: '\\u21B2' },\n { tex: /\\\\Barv/, unicode: '\\u2AE7' },\n { tex: /\\\\cdot/, unicode: '\\xB7' },\n { tex: /\\\\vBar/, unicode: '\\u2AE8' },\n { tex: /\\\\lang/, unicode: '\\u27EA' },\n { tex: /\\\\rang/, unicode: '\\u27EB' },\n { tex: /\\\\Zbar/, unicode: '\\u01B5' },\n { tex: /\\\\star/, unicode: '\\u22C6' },\n { tex: /\\\\psur/, unicode: '\\u2900' },\n { tex: /\\\\pinj/, unicode: '\\u2914' },\n { tex: /\\\\finj/, unicode: '\\u2915' },\n { tex: /\\\\bNot/, unicode: '\\u2AED' },\n { tex: /\\\\spot/, unicode: '\\u2981' },\n { tex: /\\\\limg/, unicode: '\\u2987' },\n { tex: /\\\\rimg/, unicode: '\\u2988' },\n { tex: /\\\\obot/, unicode: '\\u29BA' },\n { tex: /\\\\cirE/, unicode: '\\u29C3' },\n { tex: /\\\\XBox/, unicode: '\\u2612' },\n { tex: /\\\\perp/, unicode: '\\u22A5' },\n { tex: /\\\\leqq/, unicode: '\\u2266' },\n { tex: /\\\\dsol/, unicode: '\\u29F6' },\n { tex: /\\\\Rbag/, unicode: '\\u27C6' },\n { tex: /\\\\xsol/, unicode: '\\u29F8' },\n { tex: /\\\\odot/, unicode: '\\u2299' },\n { tex: /\\\\flat/, unicode: '\\u266D' },\n { tex: /\\\\LVec/, unicode: '\\u20D6' },\n { tex: /\\\\intx/, unicode: '\\u2A18' },\n { tex: /\\\\lvec/, unicode: '\\u20D0' },\n { tex: /\\\\Join/, unicode: '\\u2A1D' },\n { tex: /\\\\zcmp/, unicode: '\\u2A1F' },\n { tex: /\\\\pfun/, unicode: '\\u21F8' },\n { tex: /\\\\cong/, unicode: '\\u2245' },\n { tex: /\\\\smte/, unicode: '\\u2AAC' },\n { tex: /\\\\ffun/, unicode: '\\u21FB' },\n { tex: /\\\\odiv/, unicode: '\\u2A38' },\n { tex: /\\\\fcmp/, unicode: '\\u2A3E' },\n { tex: /\\\\mlcp/, unicode: '\\u2ADB' },\n { tex: /\\\\ElOr/, unicode: '\\u2A56' },\n { tex: /\\\\dsub/, unicode: '\\u2A64' },\n { tex: /\\\\rsub/, unicode: '\\u2A65' },\n { tex: /\\\\oint/, unicode: '\\u222E' },\n { tex: /\\\\Same/, unicode: '\\u2A76' },\n { tex: /\\\\geqq/, unicode: '\\u2267' },\n { tex: /\\\\prod/, unicode: '\\u220F' },\n { tex: /\\\\lneq/, unicode: '\\u2A87' },\n { tex: /\\\\gneq/, unicode: '\\u2A88' },\n { tex: /\\\\upin/, unicode: '\\u27D2' },\n { tex: /\\\\not>/, unicode: '\\u226F' },\n { tex: /_\\\\ast/, unicode: '\\u2217' },\n { tex: /\\\\iota/, unicode: '\\u03B9' },\n { tex: /\\\\zeta/, unicode: '\\u03B6' },\n { tex: /\\\\beta/, unicode: '\\u03B2' },\n { tex: /\\\\male/, unicode: '\\u2642' },\n { tex: /\\\\nisd/, unicode: '\\u22FA' },\n { tex: /\\\\quad/, unicode: '\\u2001' },\n { tex: /\\\\text/, unicode: '' },\n { tex: /\\\\glj/, unicode: '\\u2AA4' },\n { tex: /\\\\int/, unicode: '\\u222B' },\n { tex: /\\\\cup/, unicode: '\\u222A' },\n { tex: /\\\\QED/, unicode: '\\u220E' },\n { tex: /\\\\cap/, unicode: '\\u2229' },\n { tex: /\\\\gla/, unicode: '\\u2AA5' },\n { tex: /\\\\Psi/, unicode: '\\u03A8' },\n { tex: /\\\\Phi/, unicode: '\\u03A6' },\n { tex: /\\\\sum/, unicode: '\\u2211' },\n { tex: /\\\\Rsh/, unicode: '\\u21B1' },\n { tex: /\\\\vee/, unicode: '\\u2228' },\n { tex: /\\\\Lsh/, unicode: '\\u21B0' },\n { tex: /\\\\sim/, unicode: '\\u223C' },\n { tex: /\\\\lhd/, unicode: '\\u25C1' },\n { tex: /\\\\LHD/, unicode: '\\u25C0' },\n { tex: /\\\\rhd/, unicode: '\\u25B7' },\n { tex: /\\\\phi/, unicode: '\\u03D5' },\n { tex: /\\\\lgE/, unicode: '\\u2A91' },\n { tex: /\\\\glE/, unicode: '\\u2A92' },\n { tex: /\\\\RHD/, unicode: '\\u25B6' },\n { tex: /\\\\cat/, unicode: '\\u2040' },\n { tex: /\\\\Yup/, unicode: '\\u2144' },\n { tex: /\\\\vec/, unicode: '\\u20D1' },\n { tex: /\\\\div/, unicode: '\\xF7' },\n { tex: /\\\\mid/, unicode: '\\u2223' },\n { tex: /\\\\mho/, unicode: '\\u2127' },\n { tex: /\\\\psi/, unicode: '\\u03C8' },\n { tex: /\\\\chi/, unicode: '\\u03C7' },\n { tex: /\\\\top/, unicode: '\\u22A4' },\n { tex: /\\\\Not/, unicode: '\\u2AEC' },\n { tex: /\\\\tau/, unicode: '\\u03C4' },\n { tex: /\\\\smt/, unicode: '\\u2AAA' },\n { tex: /\\\\rho/, unicode: '\\u03C1' },\n { tex: /\\\\sun/, unicode: '\\u263C' },\n { tex: /\\\\Cap/, unicode: '\\u22D2' },\n { tex: /\\\\lat/, unicode: '\\u2AAB' },\n { tex: /\\\\leo/, unicode: '\\u264C' },\n { tex: /\\\\Sun/, unicode: '\\u2609' },\n { tex: /\\\\Cup/, unicode: '\\u22D3' },\n { tex: /\\\\eta/, unicode: '\\u03B7' },\n { tex: /\\\\Top/, unicode: '\\u2AEA' },\n { tex: /\\\\bij/, unicode: '\\u2916' },\n { tex: /\\\\eth/, unicode: '\\u01AA' },\n { tex: /\\\\geq/, unicode: '\\u2265' },\n { tex: /\\\\nis/, unicode: '\\u22FC' },\n { tex: /\\\\leq/, unicode: '\\u2264' },\n { tex: /\\\\le/, unicode: '\\u2264' },\n { tex: /\\\\ll/, unicode: '\\u226A' },\n { tex: /\\\\dj/, unicode: '\\u0111' },\n { tex: /\\\\in/, unicode: '\\u2208' },\n { tex: /\\\\-/, unicode: '\\xAD' },\n { tex: /\\\\th/, unicode: '\\xFE' },\n { tex: /\\\\wp/, unicode: '\\u2118' },\n { tex: /\\\\aa/, unicode: '\\xE5' },\n { tex: /\\\\ss/, unicode: '\\xDF' },\n { tex: /\\\\ae/, unicode: '\\xE6' },\n { tex: /\\\\ng/, unicode: '\\u014B' },\n { tex: /\\\\mu/, unicode: '\\u03BC' },\n { tex: /''''/, unicode: '\\u2057' },\n { tex: /\\\\pi/, unicode: '\\u03C0' },\n { tex: /\\\\gg/, unicode: '\\u226B' },\n { tex: /\\\\xi/, unicode: '\\u03BE' },\n { tex: /\\\\ni/, unicode: '\\u220B' },\n { tex: /\\\\nu/, unicode: '\\u03BD' },\n { tex: /\\\\pm/, unicode: '\\xB1' },\n { tex: /\\\\mp/, unicode: '\\u2213' },\n { tex: /\\\\wr/, unicode: '\\u2240' },\n { tex: /\\\\\\./, unicode: '\\u0307' },\n { tex: /\\\\dh/, unicode: '\\xF0' },\n { tex: /\\\\oe/, unicode: '\\u0153' },\n { tex: /\\\\url/, unicode: '\\\\XXurl' },\n { tex: /\\\\u/, unicode: '\\u0306' },\n { tex: /\\\\XXurl/, unicode: '\\\\url' },\n { tex: /\\\\L/, unicode: '\\u0141' },\n { tex: /\\\\c/, unicode: '\\xB8' },\n { tex: /\\\\i/, unicode: '\\u0131' },\n { tex: /\\\\k/, unicode: '\\u02DB' },\n { tex: /\\\\H/, unicode: '\\u02DD' },\n { tex: /\\\\\"/, unicode: '\\u0308' },\n { tex: /\\\\v/, unicode: '\\u030C' },\n { tex: /\\\\o/, unicode: '\\xF8' },\n { tex: /\\\\`/, unicode: '\\u0300' },\n { tex: /\\\\'/, unicode: '\\u0301' },\n { tex: /\\\\~/, unicode: '\\u0303' },\n { tex: /\\\\r/, unicode: '\\u02DA' },\n { tex: /\\\\O/, unicode: '\\xD8' },\n { tex: /\\\\=/, unicode: '\\u0304' },\n { tex: /\\\\l/, unicode: '\\u0142' },\n { tex: /'''/, unicode: '\\u2034' },\n { tex: /\\\\textasciitilde/, unicode: '\\\\~' },\n\n { tex: /\\\\backslash|\\\\textbackslash/, unicode: '\\u0871' }, // handled separately in parser\n\n].map(texChar => {\n const re = texChar.tex.source\n return {\n tex: (/^[a-zA-Z\\\\]+$/.test(re) ?\n new RegExp(`{(${re})}|${re}\\\\s|${re}(?=\\\\W|\\\\_)`,'g') :\n new RegExp(`{(${re})}|${re}{}|${re}`,'g')),\n unicode: texChar.unicode,\n }\n})\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/import/group-parser.js\":\n/*!*************************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/import/group-parser.js ***!\n \\*************************************************************************/\n/*! exports provided: GroupParser */\n/*! exports used: GroupParser */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return GroupParser; });\n// @flow\n\n/*::\nimport type {EntryObject, NodeObject, GroupObject} from \"../const\"\n\ntype StringStartTuplet = [string, () => void];\n\ntype WarningObject = {\n type: string;\n group_type: string;\n}\n\n*/\n\n\n\nclass GroupParser {\n\n /*::\n groups: Array<GroupObject>;\n groupType: string;\n warnings: Array<WarningObject>;\n entries: Array<EntryObject>;\n stringStarts: Array<StringStartTuplet>;\n pos: number;\n fileDirectory: string;\n input: string;\n */\n\n constructor(entries /*: Array<EntryObject> */) {\n this.groups = []\n this.groupType = 'jabref4'\n this.warnings = []\n this.entries = entries\n this.pos = 0\n this.fileDirectory = ''\n this.input = ''\n this.stringStarts = [\n [\"jabref-meta: databaseType:bibtex;\", () => { this.groupType = 'jabref4' }],\n [\"jabref-meta: databaseType:biblatex;\", () => { this.groupType = 'jabref4' }],\n [\"jabref-meta: groupsversion:3;\", () => { this.groupType = 'jabref3' }],\n [\"jabref-meta: grouping:\", () => this.readGroupInfo('jabref4.1')],\n [\"jabref-meta: groupstree:\", () => this.readGroupInfo('')], //@retorquere: There seems to be a string missing\n [\"jabref-meta: fileDirectory:\", () => this.readFileDirectory()]\n ]\n }\n\n checkString(input /*: string */) {\n this.input = input\n //let searchPos = 0\n this.pos = 0\n this.stringStarts.find(stringStart => {\n let pos = input.indexOf(stringStart[0], this.pos)\n if (pos < 0) {\n return false\n } else {\n this.pos = pos + stringStart[0].length\n stringStart[1]()\n return true\n }\n })\n }\n\n readGroupInfo(groupType /*: string */) {\n if (groupType) this.groupType = groupType\n\n switch(this.groupType) {\n case 'jabref3':\n this.readJabref3()\n break\n case 'jabref4':\n case 'jabref4.1':\n this.readJabref4()\n break\n default:\n break\n }\n }\n\n readFileDirectory() {\n let fileDirectory = '',\n input = this.input ? this.input : '',\n pos = this.pos\n while ((input.length > pos) && (input[pos]) !== ';') {\n fileDirectory += input[pos]\n pos++\n }\n this.fileDirectory = fileDirectory\n this.pos = pos\n }\n\n readJabref3() {\n\n /* The JabRef Groups format is... interesting. To parse it, you must:\n 1. Unwrap the lines (just remove the newlines)\n 2. Split the lines on ';' (but not on '\\;')\n 3. Each line is a group which is formatted as follows:\n <level> <type>:<name>\\;<intersect>\\;<citekey1>\\;<citekey2>\\;....\n\n Each level can interact with the level it is nested under; either no interaction (intersect = 0), intersection\n (intersect = 1) or union (intersect = 2).\n\n There are several group types: root-level (all references are implicitly available on the root level),\n ExplicitGroup (the citation keys are listed in the group line) or query-type groups. I have only implemented\n explicit groups.\n */\n // skip any whitespace after the identifying string */\n while (\n (this.input.length > this.pos) &&\n ('\\r\\n '.indexOf(this.input[this.pos]) >= 0)\n ) { this.pos++ }\n // simplify parsing by taking the whole comment, throw away newlines, replace the escaped separators with tabs, and\n // then split on the remaining non-escaped separators\n // I use \\u2004 to protect \\; and \\u2005 to protect \\\\\\; (the escaped version of ';') when splitting lines at ;\n let lines = this.input.substring(this.pos).replace(/[\\r\\n]/g, '').replace(/\\\\\\\\\\\\;/g, '\\u2005').replace(/\\\\;/g, '\\u2004').split(';')\n lines = lines.map(line => line.replace(/\\u2005/g,';'))\n let levels = { '0': { references: [], groups: [] } }\n for (let line of lines) {\n if (line === '') { continue }\n let match = line.match(/^([0-9])\\s+([^:]+):(.*)/)\n if (!match) { return }\n let level = parseInt(match[1])\n let type = match[2]\n let references = match[3]\n references = references ? references.split('\\u2004').filter(key => key) : []\n let name = references.shift()\n let intersection = references.shift() // 0 = independent, 1 = intersection, 2 = union\n\n // ignore root level, has no refs anyway in the comment\n if (level === 0) { continue }\n\n // remember this group as the current `level` level, so that any following `level + 1` levels can find it\n levels[level] = { name, groups: [], references }\n // and add it to its parent\n levels[level - 1].groups.push(levels[level])\n\n // treat all groups as explicit\n if (type != 'ExplicitGroup') {\n this.warnings.push({\n type: 'unsupported_jabref_group',\n group_type: type\n })\n }\n\n switch (intersection) {\n case '0':\n // do nothing more\n break\n case '1':\n // intersect with parent. Hardly ever used.\n levels[level].references = levels[level].references.filter(key => levels[level - 1].references.includes(key))\n break\n case '2':\n // union with parent\n levels[level].references = [...new Set([...levels[level].references, ...levels[level - 1].references])]\n break\n }\n }\n\n this.groups = levels['0'].groups\n }\n\n clearGroups(groups /*: Array<GroupObject> */) {\n for (const group of groups) {\n group.references = []\n this.clearGroups(group.groups || [])\n }\n }\n\n readJabref4() {\n\n this.readJabref3()\n\n if (this.groupType === 'jabref4.1') {\n this.clearGroups(this.groups)\n }\n\n // this assumes the JabRef groups always come after the references\n this.entries.forEach(bib => {\n\n if (!bib.unknown_fields || !bib.unknown_fields.groups || !bib.entry_key) {\n return\n }\n // this assumes ref.unknown_fields.groups is a single text chunk\n let groups = bib.unknown_fields.groups.reduce(\n (string /*: string */, node /*: NodeObject */) => {\n if (typeof node.text === 'string') {\n const text /*: string */ = node.text,\n // undo undescores to marks -- groups content is in verbatim-ish mode\n sub = (node.marks || []).find(mark => mark.type === 'sub') ? '_' : ''\n string += sub + text\n }\n return string\n },\n ''\n ).trim()\n if (bib.unknown_fields) {\n delete bib.unknown_fields.groups\n }\n\n if (!groups.length) {\n return\n }\n\n groups.split(/\\s*,\\s*/).forEach(groupName => {\n let group = this.find(groupName)\n if (group) {\n group.references.push(bib.entry_key)\n }\n })\n })\n }\n\n find (name /*: string */, groups /*: Array<GroupObject> | void */) /*: GroupObject | false */ {\n groups = groups || this.groups\n if (!groups) {\n return false\n }\n\n for (let i = 0; i < groups.length; i++) {\n if (groups[i].name === name) return groups[i]\n let group = this.find(name, groups[i].groups)\n if (group) return group\n }\n return false\n }\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/import/literal-parser.js\":\n/*!***************************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/import/literal-parser.js ***!\n \\***************************************************************************/\n/*! exports provided: BibLatexLiteralParser */\n/*! exports used: BibLatexLiteralParser */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BibLatexLiteralParser; });\n// @flow\nconst LATEX_COMMANDS = [ // commands that can can contain richtext.\n ['\\\\textbf{', 'strong'],\n ['\\\\mkbibbold{', 'strong'],\n ['\\\\mkbibitalic{', 'em'],\n ['\\\\mkbibemph{', 'em'],\n ['\\\\textit{', 'em'],\n ['\\\\emph{', 'em'],\n ['\\\\textsc{', 'smallcaps'],\n ['\\\\enquote{', 'enquote'],\n ['\\\\mkbibquote{', 'enquote'],\n ['\\\\textsubscript{', 'sub'],\n ['\\\\textsuperscript{', 'sup']\n]\n\nconst LATEX_VERBATIM_COMMANDS = [ // commands that can only contain plaintext.\n ['\\\\url{', 'url']\n]\n\nconst LATEX_SPECIAL_CHARS = {\n '&': '&',\n '%': '%',\n '$': '$',\n '#': '#',\n '_': '_',\n '{': '{',\n '}': '}',\n ',': ',',\n '~': '~',\n '^': '^',\n '\\'': '\\'',\n ';': '\\u2004',\n '\\\\': '\\n'\n}\n\n/*::\n\nimport type {NodeObject, TextNodeObject, MarkObject} from \"../const\"\n*/\n\nclass BibLatexLiteralParser {\n /*::\n string: string;\n cpMode: boolean;\n braceLevel: number;\n slen: number;\n si: number;\n json: Array<NodeObject>;\n braceClosings: Array<boolean>;\n currentMarks: Array<MarkObject>;\n inCasePreserve: number | null;\n textNode: TextNodeObject;\n */\n\n\n constructor(string /*: string */, cpMode /*: boolean */ = false) {\n this.string = string\n this.cpMode = cpMode // Whether to consider case preservation.\n this.braceLevel = 0\n this.slen = string.length\n this.si = 0 // string index\n this.json = []\n this.braceClosings = []\n this.currentMarks = []\n this.inCasePreserve = null\n this.addNewTextNode()\n }\n\n // If the last text node has no content, remove it.\n removeIfEmptyTextNode() {\n if (this.textNode.text.length === 0) {\n this.json.pop()\n }\n }\n\n checkAndAddNewTextNode() {\n if (this.textNode.text.length > 0) {\n // We have text in the last node already,\n // so we need to start a new text node.\n this.addNewTextNode()\n }\n }\n\n addNewTextNode() {\n const textNode /*: TextNodeObject */ = {type: 'text', text: ''}\n this.json.push(textNode)\n this.textNode = textNode\n }\n\n stringParser() {\n let variable, sj\n parseString: while (this.si < this.slen) {\n switch(this.string[this.si]) {\n case '\\\\':\n for (let command of LATEX_COMMANDS) {\n if (this.string.substring(this.si, this.si + command[0].length) === command[0]) {\n this.braceLevel++\n this.si += command[0].length\n this.checkAndAddNewTextNode()\n if (this.cpMode) {\n // If immediately inside a brace that added case protection, remove case protection. See\n // http://tex.stackexchange.com/questions/276943/biblatex-how-to-emphasize-but-not-caps-protect\n if (\n this.inCasePreserve===(this.braceLevel-1) &&\n this.string[this.si-1] === '{' &&\n this.currentMarks[this.currentMarks.length-1].type === 'nocase'\n ) {\n this.currentMarks.pop()\n this.inCasePreserve = null\n } else {\n // Of not immediately inside a brace, any styling also\n // adds case protection.\n this.currentMarks.push({type:'nocase'})\n this.inCasePreserve = this.braceLevel\n }\n }\n this.currentMarks.push({type:command[1]})\n this.textNode.marks = this.currentMarks.slice()\n this.braceClosings.push(true)\n continue parseString\n }\n }\n for (let command of LATEX_VERBATIM_COMMANDS) {\n if (this.string.substring(this.si, this.si + command[0].length) === command[0]) {\n this.checkAndAddNewTextNode()\n this.textNode.marks = this.currentMarks.slice()\n this.textNode.marks.push({type:command[1]})\n this.si += command[0].length\n let sj = this.si\n let internalBraceLevel = 0\n while (\n sj < this.slen &&\n (\n this.string[sj] !== '}' ||\n internalBraceLevel > 0\n )\n ) {\n switch (this.string[sj]) {\n case '{':\n internalBraceLevel++\n break\n case '}':\n internalBraceLevel--\n break\n }\n sj++\n }\n this.textNode.text = this.string.substring(this.si,sj)\n this.addNewTextNode()\n this.si = sj + 1\n continue parseString\n }\n }\n if (LATEX_SPECIAL_CHARS[this.string[this.si+1]]) {\n this.textNode.text += LATEX_SPECIAL_CHARS[this.string[this.si+1]]\n this.si += 2\n } else {\n // We don't know the command and skip it.\n this.si++\n while(this.si<this.slen && this.string[this.si].match(\"[a-zA-Z0-9]\")) {\n this.si++\n }\n // If there is a brace at the end of the command,\n // increase brace level but ignore brace.\n if (this.string[this.si] === \"{\") {\n this.braceLevel++\n this.braceClosings.push(false)\n this.si++\n }\n }\n break\n case '_':\n switch(this.string[this.si+1]) {\n case '{':\n this.checkAndAddNewTextNode()\n this.braceLevel++\n this.si += 2\n this.currentMarks.push({type:'sub'})\n this.textNode.marks = this.currentMarks.slice()\n this.braceClosings.push(true)\n break\n case '\\\\':\n // There is a command following directly. Ignore the sub symbol.\n this.si++\n break\n default:\n // We only add the next character to a sub node.\n this.checkAndAddNewTextNode()\n this.textNode.marks = this.currentMarks.slice()\n this.textNode.marks.push({type:'sub'})\n this.textNode.text = this.string[this.si+1]\n this.addNewTextNode()\n if (this.currentMarks.length) {\n this.textNode.marks = this.currentMarks.slice()\n }\n this.si += 2\n }\n break\n case '`':\n if (this.string[this.si+1] === '`') {\n this.checkAndAddNewTextNode()\n this.braceLevel++\n this.si += 2\n this.currentMarks.push({type:'enquote'})\n this.textNode.marks = this.currentMarks.slice()\n this.braceClosings.push(true)\n } else {\n this.textNode.text += this.string[this.si]\n this.si++\n }\n break\n case '\\'':\n if (this.string[this.si+1] === '\\'') {\n this.braceLevel--\n if (this.braceLevel > -1) {\n let closeBrace = this.braceClosings.pop()\n if (closeBrace) {\n this.checkAndAddNewTextNode()\n this.currentMarks.pop()\n if (this.currentMarks.length) {\n this.textNode.marks = this.currentMarks.slice()\n } else {\n delete this.textNode.marks\n }\n }\n this.si += 2\n //continue parseString\n } else {\n // A brace was closed before it was opened. Abort and return the original string.\n return [{type: 'text', text: this.string}]\n }\n } else {\n this.textNode.text += this.string[this.si]\n this.si++\n }\n break\n case '^':\n switch(this.string[this.si+1]) {\n case '{':\n this.checkAndAddNewTextNode()\n this.braceLevel++\n this.si += 2\n this.currentMarks.push({type:'sup'})\n this.textNode.marks = this.currentMarks.slice()\n this.braceClosings.push(true)\n break\n case '\\\\':\n // There is a command following directly. Ignore the sup symbol.\n this.si++\n break\n default:\n // We only add the next character to a sup node.\n this.checkAndAddNewTextNode()\n this.textNode.marks = this.currentMarks.slice()\n this.textNode.marks.push({type:'sup'})\n this.textNode.text = this.string[this.si+1]\n this.addNewTextNode()\n if (this.currentMarks.length) {\n this.textNode.marks = this.currentMarks.slice()\n }\n this.si += 2\n }\n break\n case '{':\n if (this.string[this.si+1] === '}') {\n // bracket is closing immediately. Ignore it.\n this.si += 2\n continue\n }\n this.braceLevel++\n if (this.inCasePreserve || !this.cpMode) {\n // If already inside case preservation, do not add a second\n this.braceClosings.push(false)\n } else {\n this.inCasePreserve = this.braceLevel\n this.checkAndAddNewTextNode()\n this.currentMarks.push({type:'nocase'})\n this.textNode.marks = this.currentMarks.slice()\n this.braceClosings.push(true)\n }\n this.si++\n break\n case '}':\n this.braceLevel--\n if (this.braceLevel > -1) {\n let closeBrace = this.braceClosings.pop()\n if (closeBrace) {\n this.checkAndAddNewTextNode()\n let lastMark = this.currentMarks.pop()\n if (this.inCasePreserve===(this.braceLevel+1)) {\n this.inCasePreserve = null\n // The last tag may have added more tags. The\n // lowest level will be the case preserving one.\n while(lastMark.type !== 'nocase' && this.currentMarks.length) {\n lastMark = this.currentMarks.pop()\n }\n }\n if (this.currentMarks.length) {\n this.textNode.marks = this.currentMarks.slice()\n } else {\n delete this.textNode.marks\n }\n }\n this.si++\n //continue parseString\n } else {\n // A brace was closed before it was opened. Abort and return the original string.\n return [{type: 'text', text: this.string}]\n }\n break\n case '$':\n // math env, just remove\n this.si++\n break\n case '~':\n // a non-breakable space\n this.textNode.text += '\\u00A0'\n this.si++\n break\n case '\\u0870':\n // An undefined variable.\n this.removeIfEmptyTextNode()\n sj = this.si + 1\n while (sj < this.slen && this.string[sj] !== '\\u0870') {\n sj++\n }\n variable = this.string.substring(this.si+1, sj)\n this.json.push({type:'variable', attrs:{variable}})\n this.addNewTextNode()\n this.si = sj + 1\n break\n case '\\u0871':\n // A backslash\n this.textNode.text += '\\\\'\n this.si++\n break\n case '\\r':\n this.si++\n break\n case '\\n':\n if (\n ['\\r','\\n'].includes(this.string[this.si+1]) &&\n this.string[this.si-1] !== '\\n'\n ) {\n this.textNode.text += '\\n\\n'\n } else if (\n /\\S/.test(this.string[this.si-1]) &&\n /\\S/.test(this.string[this.si+1])\n ) {\n this.textNode.text += ' '\n }\n this.si++\n break\n default:\n this.textNode.text += this.string[this.si]\n this.si++\n }\n }\n\n if (this.braceLevel > 0) {\n // Too many opening braces, we return the original string.\n return [{type: 'text', text: this.string}]\n }\n\n this.removeIfEmptyTextNode()\n\n // Braces were accurate.\n return this.json\n }\n\n get output() {\n return this.stringParser()\n }\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/import/name-parser.js\":\n/*!************************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/import/name-parser.js ***!\n \\************************************************************************/\n/*! exports provided: BibLatexNameParser */\n/*! exports used: BibLatexNameParser */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BibLatexNameParser; });\n/* harmony import */ var _literal_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./literal-parser */ \"../node_modules/biblatex-csl-converter/src/import/literal-parser.js\");\n// @flow\n\n\n/*::\n\nimport type {NodeArray, NameDictObject} from \"../const\"\n\n*/\n\nclass BibLatexNameParser {\n\n /*::\n nameString: string;\n nameDict: NameDictObject;\n _particle: Array<string>;\n _suffix: Array<string>;\n */\n\n constructor(nameString /*: string */) {\n this.nameString = nameString.trim()\n this.nameDict = {}\n this._particle = []\n this._suffix = []\n }\n\n parseName() {\n let parts = this.splitTexString(this.nameString, ',')\n if (parts.length > 1 && this.nameString.includes('=')) {\n // extended name detected.\n this.parseExtendedName(parts)\n } else if (parts.length === 3) { // von Last, Jr, First\n this.processVonLast(\n this.splitTexString(parts[0].replace(/[{}]/g,'')),\n this.splitTexString(parts[1])\n )\n this.processFirstMiddle(this.splitTexString(parts[2]))\n } else if (parts.length === 2) { // von Last, First\n this.processVonLast(this.splitTexString(parts[0].replace(/[{}]/g,'')))\n this.processFirstMiddle(this.splitTexString(parts[1]))\n } else if (parts.length === 1) { // First von Last\n let spacedParts = this.splitTexString(this.nameString)\n if (spacedParts.length === 1) {\n if (\n this.nameString[0] === '{' &&\n this.nameString[this.nameString.length-1] === '}' &&\n this.nameString.includes('=') &&\n this.nameString.includes(',') &&\n this.nameString.includes(' ') &&\n (\n this.nameString.includes('given') ||\n this.nameString.includes('family')\n )\n ) {\n parts = this.splitTexString(\n this.nameString.slice(1, this.nameString.length - 1),\n ','\n )\n // extended name detected.\n this.parseExtendedName(parts)\n } else {\n let literal = this._reformLiteral(spacedParts[0])\n if (literal.length) {\n this.nameDict['literal'] = literal\n }\n }\n } else {\n let split = this.splitAt(spacedParts)\n let firstMiddle = split[0]\n let vonLast = split[1]\n if (vonLast.length === 0 && firstMiddle.length > 1) {\n let last = firstMiddle.pop()\n vonLast.push(last)\n }\n this.processFirstMiddle(firstMiddle)\n this.processVonLast(vonLast)\n }\n\n } else {\n this.nameDict['literal'] = this._reformLiteral(this.nameString.trim())\n }\n }\n\n parseExtendedName(parts /*: Array<string> */) {\n parts.forEach( part => {\n let attrParts = part.trim().replace(/^\"|\"$/g,'').split('=')\n let attrName = attrParts.shift().trim().toLowerCase()\n if (['family', 'given', 'prefix', 'suffix'].includes(attrName)) {\n this.nameDict[attrName] = this._reformLiteral(attrParts.join('=').trim())\n } else if (attrName==='useprefix') {\n if (attrParts.join('').trim().toLowerCase() === 'true') {\n this.nameDict['useprefix'] = true\n } else {\n this.nameDict['useprefix'] = false\n }\n }\n })\n }\n\n get output() {\n this.parseName()\n if (Object.keys(this.nameDict).length) {\n return this.nameDict\n } else {\n return false\n }\n }\n\n splitTexString(string /*: string */, sep /*: string */='[\\\\s~]+') {\n let braceLevel = 0\n let inQuotes = false\n let nameStart = 0\n let result = []\n let stringLen = string.length\n let pos = 0\n while (pos < stringLen) {\n let char = string.charAt(pos)\n switch (char) {\n case '{':\n braceLevel += 1\n break\n case '}':\n braceLevel -= 1\n break\n case '\"':\n inQuotes = !inQuotes\n break\n case '\\\\':\n // skip next\n pos++\n break\n default:\n if (braceLevel === 0 && inQuotes === false && pos > 0) {\n let match = string.slice(pos).match(RegExp(`^${sep}`))\n if (match) {\n let sepLen = match[0].length\n if (pos + sepLen < stringLen) {\n result.push(string.slice(nameStart, pos))\n nameStart = pos + sepLen\n }\n }\n }\n }\n\n pos++\n }\n if (nameStart < stringLen) {\n result.push(string.slice(nameStart))\n }\n return result\n }\n\n processFirstMiddle(parts /*: Array<string> */) {\n this.nameDict['given'] = this._reformLiteral(parts.join(' ').trim())\n }\n\n processVonLast(parts /*: Array<string> */, lineage /*: Array<string> */ =[]) {\n let rSplit = this.rsplitAt(parts)\n let von = rSplit[0]\n let last = rSplit[1]\n if (von && !last) {\n last.push(von.pop())\n }\n if (von.length) {\n this.nameDict['prefix'] = this._reformLiteral(von.join(' ').trim())\n this.nameDict['useprefix'] = true // The info at hand is not clear, so we guess.\n }\n if (lineage.length) {\n this.nameDict['suffix'] = this._reformLiteral(lineage.join(' ').trim())\n }\n this.nameDict['family'] = this._reformLiteral(last.join(' ').trim())\n }\n\n findFirstLowerCaseWord(lst /*: Array<string> */) {\n // return index of first lowercase word in lst. Else return length of lst.\n for(let i = 0;i<lst.length;i++) {\n let word = lst[i]\n if (word === word.toLowerCase()) {\n return i\n }\n }\n return lst.length\n }\n\n splitAt(lst /*: Array<string> */) /*: [Array<string>, Array<string>] */ {\n // Split the given list into two parts.\n // The second part starts with the first lowercase word.\n const pos = this.findFirstLowerCaseWord(lst)\n return [lst.slice(0, pos), lst.slice(pos)]\n }\n\n rsplitAt(lst /*: Array<string> */) /*: [Array<string>, Array<string>] */{\n const rpos = this.findFirstLowerCaseWord(lst.slice().reverse())\n const pos = lst.length - rpos\n return [lst.slice(0, pos), lst.slice(pos)]\n }\n\n _reformLiteral(litString /*: string */) {\n let parser = new _literal_parser__WEBPACK_IMPORTED_MODULE_0__[/* BibLatexLiteralParser */ \"a\"](litString)\n return parser.output\n }\n\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/biblatex-csl-converter/src/import/tools.js\":\n/*!******************************************************************!*\\\n !*** ../node_modules/biblatex-csl-converter/src/import/tools.js ***!\n \\******************************************************************/\n/*! exports provided: splitTeXString */\n/*! exports used: splitTeXString */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return splitTeXString; });\n// @flow\n// split at each occurence of splitToken, but only if no braces are currently open.\nfunction splitTeXString(texString /*: string */, splitToken /*: string */ ='and') /*: Array<string> */ {\n let output = []\n let tokenRe = /([^\\s{}]+|\\s|{|})/g\n let j = 0\n let k = 0\n let item\n while ((item = tokenRe.exec(texString)) !== null) {\n const token = item && item.length ? item[0] : false\n if (token===false) {\n break\n }\n if (k === output.length) {\n output.push('')\n }\n switch (token) {\n case '{':\n j += 1\n output[k] += token\n break\n case '}':\n j -= 1\n output[k] += token\n break\n case splitToken:\n if (0===j) {\n k++\n } else {\n output[k] += token\n }\n break\n default:\n output[k] += token\n }\n }\n return output\n}\n\n\n/***/ }),\n\n/***/ \"../node_modules/string-template/index.js\":\n/*!************************************************!*\\\n !*** ../node_modules/string-template/index.js ***!\n \\************************************************/\n/*! no static exports found */\n/*! all exports used */\n/***/ (function(module, exports) {\n\nvar nargs = /\\{([0-9a-zA-Z_]+)\\}/g\n\nmodule.exports = template\n\nfunction template(string) {\n var args\n\n if (arguments.length === 2 && typeof arguments[1] === \"object\") {\n args = arguments[1]\n } else {\n args = new Array(arguments.length - 1)\n for (var i = 1; i < arguments.length; ++i) {\n args[i - 1] = arguments[i]\n }\n }\n\n if (!args || !args.hasOwnProperty) {\n args = {}\n }\n\n return string.replace(nargs, function replaceArg(match, i, index) {\n var result\n\n if (string[index - 1] === \"{\" &&\n string[index + match.length] === \"}\") {\n return i\n } else {\n result = args.hasOwnProperty(i) ? args[i] : null\n if (result === null || result === undefined) {\n return \"\"\n }\n\n return result\n }\n })\n}\n\n\n/***/ }),\n\n/***/ \"./Better BibTeX Citation Key Quick Copy.ts\":\n/*!**************************************************!*\\\n !*** ./Better BibTeX Citation Key Quick Copy.ts ***!\n \\**************************************************/\n/*! no static exports found */\n/*! all exports used */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n Zotero.debug('zotero-better-bibtex: loading translators/Better BibTeX Citation Key Quick Copy.ts')\n ; try { \"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format = __webpack_require__(/*! string-template */ \"../node_modules/string-template/index.js\");\nconst exporter_1 = __webpack_require__(/*! ./lib/exporter */ \"./lib/exporter.ts\");\nfunction select_link(item, mode) {\n switch (mode) {\n case 'id': return item.libraryID > 1 ? `zotero://select/items/${item.libraryID}_${item.key}` : `zotero://select/items/${item.key}`;\n case 'citekey': return `zotero://select/items/@${encodeURIComponent(item.citekey)}`;\n default: throw new Error(`Unsupported link mode ${mode}`);\n }\n}\nconst Mode = {\n gitbook(items) {\n const citations = items.map(item => `{{ \\\"${item.citekey}\\\" | cite }}`);\n Zotero.write(citations.join(''));\n },\n atom(items) {\n const keys = items.map(item => item.citekey);\n if (keys.length === 1) {\n Zotero.write(`[](#@${keys[0]})`);\n }\n else {\n Zotero.write(`[](?@${keys.join(',')})`);\n }\n },\n latex(items) {\n const keys = items.map(item => item.citekey);\n const cmd = `${Translator.preferences.citeCommand}`.trim();\n if (cmd === '') {\n Zotero.write(keys.join(','));\n }\n else {\n Zotero.write(`\\\\${cmd}{${keys.join(',')}}`);\n }\n },\n citekeys(items) {\n const keys = items.map(item => item.citekey);\n Zotero.write(keys.join(','));\n },\n pandoc(items) {\n let keys = items.map(item => `@${item.citekey}`);\n keys = keys.join('; ');\n if (Translator.preferences.quickCopyPandocBrackets)\n keys = `[${keys}]`;\n Zotero.write(keys);\n },\n orgRef(items) {\n if (!items.length)\n return '';\n Zotero.write(`cite:${items.map(item => item.citekey).join(',')}`);\n },\n orgmode(items) {\n for (const item of items) {\n Zotero.write(`[[${select_link(item, 'id')}][@${item.citekey}]]`);\n }\n },\n orgmode_citekey(items) {\n for (const item of items) {\n Zotero.write(`[[${select_link(item, 'citekey')}][@${item.citekey}]]`);\n }\n },\n selectLink(items) {\n Zotero.write(items.map(item => select_link(item, 'id')).join('\\n'));\n },\n selectLink_citekey(items) {\n Zotero.write(items.map(item => select_link(item, 'citekey')).join('\\n'));\n },\n rtfScan(items) {\n const reference = items.map(item => {\n const ref = [];\n // author\n const creators = item.creators || [];\n const creator = creators[0] || {};\n let name = creator.name || creator.lastName || 'no author';\n if (creators.length > 1)\n name += ' et al.';\n ref.push(name);\n // title\n if (item.title)\n ref.push(JSON.stringify(item.title));\n // year\n if (item.date) {\n let date = Zotero.BetterBibTeX.parseDate(item.date);\n if (date.type === 'interval')\n date = date.from;\n if (date.type === 'verbatim' || !date.year) {\n ref.push(item.date);\n }\n else {\n ref.push(date.year);\n }\n }\n else {\n ref.push('no date');\n }\n return ref.join(', ');\n });\n Zotero.write(`{${reference.join('; ')}}`);\n },\n 'string-template'(items) {\n try {\n const { citation, item, sep } = JSON.parse(Translator.preferences.citeCommand);\n Zotero.write(format(citation || '{citation}', { citation: items.map(i => format(item || '{item}', { item: i })).join(sep || '') }));\n }\n catch (err) {\n Zotero.write(`${err}`);\n }\n },\n};\nTranslator.doExport = () => {\n let item;\n const items = [];\n while ((item = exporter_1.Exporter.nextItem())) {\n items.push(item);\n }\n const mode = Mode[`${Translator.options.quickCopyMode}`] || Mode[`${Translator.preferences.quickCopyMode}`];\n if (mode) {\n mode.call(null, items);\n }\n else {\n throw new Error(`Unsupported Quick Copy format '${Translator.options.quickCopyMode || Translator.preferences.quickCopyMode}', I only know about: ${Object.keys(Mode).join(', ')}`);\n }\n};\n; \n Zotero.debug('zotero-better-bibtex: loaded translators/Better BibTeX Citation Key Quick Copy.ts')\n ; } catch ($wrap_loader_catcher_translators_Better_BibTeX_Citation_Key_Quick_Copy_ts) { \n var $wrap_loader_message_translators_Better_BibTeX_Citation_Key_Quick_Copy_ts = 'Error: zotero-better-bibtex: load of translators/Better BibTeX Citation Key Quick Copy.ts failed:' + $wrap_loader_catcher_translators_Better_BibTeX_Citation_Key_Quick_Copy_ts + '::' + $wrap_loader_catcher_translators_Better_BibTeX_Citation_Key_Quick_Copy_ts.stack;\n if (typeof Zotero.logError === 'function') {\n Zotero.logError($wrap_loader_message_translators_Better_BibTeX_Citation_Key_Quick_Copy_ts)\n } else {\n Zotero.debug($wrap_loader_message_translators_Better_BibTeX_Citation_Key_Quick_Copy_ts)\n }\n };\n\n/***/ }),\n\n/***/ \"./bibtex/jabref.ts\":\n/*!**************************!*\\\n !*** ./bibtex/jabref.ts ***!\n \\**************************/\n/*! no static exports found */\n/*! all exports used */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n Zotero.debug('zotero-better-bibtex: loading translators/bibtex/jabref.ts')\n ; try { \"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst debug_1 = __webpack_require__(/*! ../lib/debug */ \"./lib/debug.ts\");\nclass JabRef {\n constructor() {\n this.citekeys = new Map;\n }\n exportGroups() {\n if ((Object.keys(Translator.collections).length === 0) || !Translator.preferences.jabrefFormat)\n return;\n let meta;\n if (Translator.preferences.jabrefFormat === 3) { // tslint:disable-line:no-magic-numbers\n meta = 'groupsversion:3';\n }\n else if (Translator.BetterBibLaTeX) {\n meta = 'databaseType:biblatex';\n }\n else {\n meta = 'databaseType:bibtex';\n }\n Zotero.write(`@comment{jabref-meta: ${meta};}\\n`);\n Zotero.write('@comment{jabref-meta: groupstree:\\n');\n this.groups = ['0 AllEntriesGroup:'];\n for (const collection of Object.values(Translator.collections)) {\n if (collection.parent)\n continue;\n this.exportGroup(collection, 1);\n }\n Zotero.write(this.groups.map(group => this.quote(group, true)).concat('').join(';\\n'));\n Zotero.write('}\\n');\n }\n exportGroup(collection, level) {\n let group = [`${level} ExplicitGroup:${this.quote(collection.name)}`, '0'];\n if (Translator.preferences.jabrefFormat === 3) { // tslint:disable-line:no-magic-numbers\n const references = ((collection.items || []).filter(id => this.citekeys.has(id)).map(id => this.quote(this.citekeys.get(id))));\n if (Translator.preferences.testing)\n references.sort();\n group = group.concat(references);\n }\n // what is the meaning of the empty cell at the end, JabRef?\n group.push('');\n this.groups.push(group.join(';'));\n for (const key of collection.collections || []) {\n if (Translator.collections[key])\n this.exportGroup(Translator.collections[key], level + 1);\n }\n }\n quote(s, wrap = false) {\n s = s.replace(/([\\\\;])/g, '\\\\$1');\n debug_1.debug('JabRef.quote:', s);\n if (wrap)\n s = s.match(/.{1,70}/g).join('\\n');\n return s;\n }\n}\nexports.JabRef = JabRef;\n; \n Zotero.debug('zotero-better-bibtex: loaded translators/bibtex/jabref.ts')\n ; } catch ($wrap_loader_catcher_translators_bibtex_jabref_ts) { \n var $wrap_loader_message_translators_bibtex_jabref_ts = 'Error: zotero-better-bibtex: load of translators/bibtex/jabref.ts failed:' + $wrap_loader_catcher_translators_bibtex_jabref_ts + '::' + $wrap_loader_catcher_translators_bibtex_jabref_ts.stack;\n if (typeof Zotero.logError === 'function') {\n Zotero.logError($wrap_loader_message_translators_bibtex_jabref_ts)\n } else {\n Zotero.debug($wrap_loader_message_translators_bibtex_jabref_ts)\n }\n };\n\n/***/ }),\n\n/***/ \"./lib/debug.ts\":\n/*!**********************!*\\\n !*** ./lib/debug.ts ***!\n \\**********************/\n/*! no static exports found */\n/*! all exports used */\n/***/ (function(module, exports) {\n\n\n Zotero.debug('zotero-better-bibtex: loading translators/lib/debug.ts')\n ; try { \"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// import { format } from '../../content/debug-formatter'\nfunction debug(...msg) {\n // if (!Translator.debugEnabled && !Translator.preferences.testing) return\n // Zotero.debug(format(`better-bibtex:${Translator.header.label}`, msg))\n Zotero.BetterBibTeX.debug(Translator.header.label, ...msg);\n}\nexports.debug = debug;\n; \n Zotero.debug('zotero-better-bibtex: loaded translators/lib/debug.ts')\n ; } catch ($wrap_loader_catcher_translators_lib_debug_ts) { \n var $wrap_loader_message_translators_lib_debug_ts = 'Error: zotero-better-bibtex: load of translators/lib/debug.ts failed:' + $wrap_loader_catcher_translators_lib_debug_ts + '::' + $wrap_loader_catcher_translators_lib_debug_ts.stack;\n if (typeof Zotero.logError === 'function') {\n Zotero.logError($wrap_loader_message_translators_lib_debug_ts)\n } else {\n Zotero.debug($wrap_loader_message_translators_lib_debug_ts)\n }\n };\n\n/***/ }),\n\n/***/ \"./lib/exporter.ts\":\n/*!*************************!*\\\n !*** ./lib/exporter.ts ***!\n \\*************************/\n/*! no static exports found */\n/*! all exports used */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n Zotero.debug('zotero-better-bibtex: loading translators/lib/exporter.ts')\n ; try { \"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst jabref_1 = __webpack_require__(/*! ../bibtex/jabref */ \"./bibtex/jabref.ts\"); // not so nice... BibTeX-specific code\nconst debug_1 = __webpack_require__(/*! ../lib/debug */ \"./lib/debug.ts\");\nconst itemfields = __webpack_require__(/*! ../../gen/itemfields */ \"../gen/itemfields.ts\");\nconst biblatex = __webpack_require__(/*! biblatex-csl-converter/src/import/biblatex */ \"../node_modules/biblatex-csl-converter/src/import/biblatex.js\");\n// export singleton: https://k94n.com/es6-modules-single-instance-pattern\nexports.Exporter = new class {\n constructor() {\n this.preamble = { DeclarePrefChars: '' };\n this.jabref = new jabref_1.JabRef();\n this.strings = {};\n }\n prepare_strings() {\n if (!Translator.BetterTeX || !Translator.preferences.strings)\n return;\n if (Translator.preferences.exportBibTeXStrings === 'match') {\n this.strings = biblatex.parse(Translator.preferences.strings, {\n processUnexpected: true,\n processUnknown: { comment: 'f_verbatim' },\n processInvalidURIs: true,\n }).strings;\n }\n /*\n if (Translator.preferences.exportBibTeXStrings !== 'off') {\n Zotero.write(`${Translator.preferences.strings}\\n\\n`)\n }\n */\n }\n unique_chars(str) {\n let uniq = '';\n for (const c of str) {\n if (uniq.indexOf(c) < 0)\n uniq += c;\n }\n return uniq;\n }\n nextItem() {\n let item;\n while (item = Zotero.nextItem()) {\n debug_1.debug(':caching:nextItem:', item.itemType);\n if (['note', 'attachment'].includes(item.itemType))\n continue;\n if (!item.citekey) {\n debug_1.debug(new Error('No citation key found in'), item);\n throw new Error(`No citation key in ${JSON.stringify(item)}`);\n }\n this.jabref.citekeys.set(item.itemID, item.citekey);\n // this is not automatically lazy-evaluated?!?!\n const cached = Translator.caching ? Zotero.BetterBibTeX.cacheFetch(item.itemID, Translator.options, Translator.preferences) : null;\n if (cached) {\n debug_1.debug('cache hit for', item.itemID);\n if (Translator.preferences.sorted && (Translator.BetterBibTeX || Translator.BetterBibLaTeX)) {\n Translator.references.push({ citekey: item.citekey, reference: cached.reference });\n }\n else {\n Zotero.write(cached.reference);\n }\n if (cached.metadata) {\n if (cached.metadata.DeclarePrefChars)\n this.preamble.DeclarePrefChars += cached.metadata.DeclarePrefChars;\n if (cached.metadata.noopsort)\n this.preamble.noopsort = true;\n }\n continue;\n }\n debug_1.debug('cache miss for', item.itemID);\n itemfields.simplifyForExport(item);\n Object.assign(item, Zotero.BetterBibTeX.extractFields(item));\n debug_1.debug('exporting', item);\n return item;\n }\n return null;\n }\n // TODO: move to bibtex-exporters\n complete() {\n debug_1.debug('sorted:', { prefs: Translator.preferences, bbt: Translator.BetterBibTeX, bbl: Translator.BetterBibLaTeX });\n if (Translator.preferences.sorted && (Translator.BetterBibTeX || Translator.BetterBibLaTeX)) {\n Translator.references.sort((a, b) => Translator.stringCompare(a.citekey, b.citekey));\n Zotero.write(Translator.references.map(ref => ref.reference).join(''));\n }\n debug_1.debug('Exporter.complete: write JabRef groups');\n this.jabref.exportGroups();\n let preamble = [];\n if (this.preamble.DeclarePrefChars)\n preamble.push(\"\\\\ifdefined\\\\DeclarePrefChars\\\\DeclarePrefChars{'’-}\\\\else\\\\fi\");\n if (this.preamble.noopsort)\n preamble.push('\\\\newcommand{\\\\noopsort}[1]{}');\n if (preamble.length > 0) {\n preamble = preamble.map(cmd => `\"${cmd} \"`);\n Zotero.write(`@preamble{ ${preamble.join(' \\n # ')} }\\n`);\n }\n }\n};\n; \n Zotero.debug('zotero-better-bibtex: loaded translators/lib/exporter.ts')\n ; } catch ($wrap_loader_catcher_translators_lib_exporter_ts) { \n var $wrap_loader_message_translators_lib_exporter_ts = 'Error: zotero-better-bibtex: load of translators/lib/exporter.ts failed:' + $wrap_loader_catcher_translators_lib_exporter_ts + '::' + $wrap_loader_catcher_translators_lib_exporter_ts.stack;\n if (typeof Zotero.logError === 'function') {\n Zotero.logError($wrap_loader_message_translators_lib_exporter_ts)\n } else {\n Zotero.debug($wrap_loader_message_translators_lib_exporter_ts)\n }\n };\n\n/***/ })\n\n/******/ });\n"}
(4)(+0000000): CREATE INDEX tagDelete_tagID ON tagDelete(tagID)
(4)(+0000002): SELECT tagID AS id, name FROM tagDelete JOIN tags USING (tagID)
(3)(+0000002): {better-bibtex +8} Translators.install: Better BibTeX Citation Key Quick Copy not reinstalling 42417dd2bd21c624a384e95976ce486e-be4de93098e45b13ec42986fe5a07408
(3)(+0000002): {better-bibtex +0} Translators.install: installed = {"translatorID":"ca65189f-8815-4afe-8c8b-8c7c15f0edca","translatorType":3,"label":"Better BibTeX","creator":"Simon Kornblith, Richard Karnesky and Emiliano heyns","target":"bib","priority":199,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"async":true,"getCollections":true,"hash":"9ea5eb7fff2f05a7795585408954ad68-641a872cf57846b65b662116a2ae77bf"},"displayOptions":{"exportNotes":false,"exportFileData":false,"useJournalAbbreviation":false,"keepUpdated":false},"runMode":1,"importRegexp":{},"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/Better BibTeX.js","fileName":"Better BibTeX.js","metadata":{"translatorID":"ca65189f-8815-4afe-8c8b-8c7c15f0edca","translatorType":3,"label":"Better BibTeX","creator":"Simon Kornblith, Richard Karnesky and Emiliano heyns","target":"bib","priority":199,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"async":true,"getCollections":true,"hash":"9ea5eb7fff2f05a7795585408954ad68-641a872cf57846b65b662116a2ae77bf"},"displayOptions":{"exportNotes":false,"exportFileData":false,"useJournalAbbreviation":false,"keepUpdated":false}}}
(4)(+0000000): DROP TABLE tagDelete
(4)(+0000006): Committed DB transaction 6uVMa8L4
(4)(+0000002): Beginning DB transaction 2XgMipIJ
(3)(+0000004): {better-bibtex +14} Translators.install: Better BibTeX not reinstalling 9ea5eb7fff2f05a7795585408954ad68-641a872cf57846b65b662116a2ae77bf
(3)(+0000000): {better-bibtex +0} Translators.install: installed = {"translatorID":"e7859c61-54d4-466a-b236-aadcf1f7e83b","translatorType":2,"label":"Collected notes","creator":"Emiliano heyns","target":"html","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"getCollections":true,"hash":"c703a44eb5768ec2a8d148fe2baa0bf1-0ceb75b7b7d3da751443454decb4c208"},"runMode":1,"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/Collected notes.js","fileName":"Collected notes.js","metadata":{"translatorID":"e7859c61-54d4-466a-b236-aadcf1f7e83b","translatorType":2,"label":"Collected notes","creator":"Emiliano heyns","target":"html","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"getCollections":true,"hash":"c703a44eb5768ec2a8d148fe2baa0bf1-0ceb75b7b7d3da751443454decb4c208"}}}
(3)(+0000002): {better-bibtex +2} Translators.install: Collected notes not reinstalling c703a44eb5768ec2a8d148fe2baa0bf1-0ceb75b7b7d3da751443454decb4c208
(3)(+0000002): {better-bibtex +2} Translators.install: installed = {"translatorID":"f4b52ab0-f878-4556-85a0-c7aeedd09dfc","translatorType":2,"label":"Better CSL JSON","creator":"Emiliano heyns","target":"json","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"hash":"6df3e3b331212ef521ddf84f05047b7e-e8566bfd727019db753d9009885d29e0"},"displayOptions":{"keepUpdated":false},"runMode":1,"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/Better CSL JSON.js","fileName":"Better CSL JSON.js","metadata":{"translatorID":"f4b52ab0-f878-4556-85a0-c7aeedd09dfc","translatorType":2,"label":"Better CSL JSON","creator":"Emiliano heyns","target":"json","priority":100,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"gcsv","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"hash":"6df3e3b331212ef521ddf84f05047b7e-e8566bfd727019db753d9009885d29e0"},"displayOptions":{"keepUpdated":false}}}
(4)(+0000000): Committed DB transaction 2XgMipIJ
(3)(+0000002): Purged data tables in 60 ms
(3)(+0000000): {better-bibtex +2} Translators.install: Better CSL JSON not reinstalling 6df3e3b331212ef521ddf84f05047b7e-e8566bfd727019db753d9009885d29e0
(3)(+0000000): {better-bibtex +0} Translators.install: installed = {"translatorID":"f895aa0d-f28e-47fe-b247-2ea77c6ed583","translatorType":2,"label":"Better BibLaTeX","creator":"Simon Kornblith, Richard Karnesky, Anders Johansson and Emiliano Heyns","target":"bib","priority":50,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"g","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"getCollections":true,"hash":"9b4c8736cc13d620417cd1693f0084ee-f5251945667e2b301ee41c2021a53571"},"displayOptions":{"exportNotes":false,"exportFileData":false,"useJournalAbbreviation":false,"keepUpdated":false},"runMode":1,"cacheCode":false,"path":"/home/spiollinux/Zotero/translators/Better BibLaTeX.js","fileName":"Better BibLaTeX.js","metadata":{"translatorID":"f895aa0d-f28e-47fe-b247-2ea77c6ed583","translatorType":2,"label":"Better BibLaTeX","creator":"Simon Kornblith, Richard Karnesky, Anders Johansson and Emiliano Heyns","target":"bib","priority":50,"lastUpdated":"2019-04-29 19:26:46","browserSupport":"g","minVersion":"4.0.27","maxVersion":"","inRepository":false,"configOptions":{"getCollections":true,"hash":"9b4c8736cc13d620417cd1693f0084ee-f5251945667e2b301ee41c2021a53571"},"displayOptions":{"exportNotes":false,"exportFileData":false,"useJournalAbbreviation":false,"keepUpdated":false}}}
(3)(+0000008): {better-bibtex +8} Translators.install: Better BibLaTeX not reinstalling 9b4c8736cc13d620417cd1693f0084ee-f5251945667e2b301ee41c2021a53571
(3)(+0000000): {better-bibtex +0} Startup progress: Installiere kompilierte Export-Module took 0.064 s
(3)(+0000000): {better-bibtex +0} Startup progress: done
(3)(+0000000): {better-bibtex +0} events: emitted ["loaded"]
(3)(+0000000): {better-bibtex +0} events: got loaded
(3)(+0000000): {better-bibtex +0} Better BibTeX load finished successfully
(4)(+0003388): SELECT COUNT(*) FROM settings WHERE setting='mImport' AND key='cleanup'
(3)(+0001544): Scheduling next feed update
(4)(+0000000): SELECT ( CASE WHEN lastCheck IS NULL THEN 0 ELSE strftime('%s', lastCheck) + refreshInterval * 60 - strftime('%s', 'now') END ) AS nextCheck FROM feeds WHERE refreshInterval IS NOT NULL ORDER BY nextCheck ASC LIMIT 1
(3)(+0000002): No feeds with auto-update
(3)(+0006118): zotero-better-bibtex: loading content/ErrorReport.ts
(3)(+0000002): zotero-better-bibtex: loaded content/ErrorReport.ts
(3)(+0000040): {better-bibtex +11094} ErrorReport.debuglog: null {"chunkSize":null,"region":null} 10485760
(3)(+0000000): {better-bibtex +0} ErrorReport.log: 674
(3)(+0000020): {better-bibtex +20} ErrorReport::init items undefined
(3)(+0000002): {better-bibtex +0} Translators.exportItems {"translatorID":"36a3b0b5-bad0-4a04-b79b-441c7cef77db","displayOptions":{"exportNotes":true,"dropAttachments":true},"path":null}
(3)(+0000000): {better-bibtex +2} Translators.exportItems prepping {"translatorID":"36a3b0b5-bad0-4a04-b79b-441c7cef77db","displayOptions":{"exportNotes":true,"dropAttachments":true},"path":null}
(3)(+0000000): {better-bibtex +0} :caching:scope: collection 6
(3)(+0000000): {better-bibtex +0} Translators.exportItems starting {"translatorID":"36a3b0b5-bad0-4a04-b79b-441c7cef77db","displayOptions":{"exportNotes":true,"dropAttachments":true},"path":null}
(4)(+0000000): Translate: Binding sandbox to http://www.example.com/
(3)(+0000006): Getting contents of /home/spiollinux/Zotero/translators/BetterBibTeX JSON.js
(4)(+0000052): Translate: Parsing code for BetterBibTeX JSON (36a3b0b5-bad0-4a04-b79b-441c7cef77db, 2019-04-29 19:26:46)
(3)(+0000008): Translate: zotero-better-bibtex: loading translators/BetterBibTeX JSON.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/lib/debug.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded translators/lib/debug.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading gen/itemfields.ts
(3)(+0000004): Translate: zotero-better-bibtex: loaded gen/itemfields.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded translators/BetterBibTeX JSON.ts
(3)(+0000004): Translate: Beginning translation with BetterBibTeX JSON
(3)(+0000002): Translate: preference load: DOIandURL = both
(3)(+0000000): Translate: preference load: ascii =
(3)(+0000000): Translate: preference load: asciiBibLaTeX = false
(3)(+0000000): Translate: preference load: asciiBibTeX = true
(3)(+0000002): Translate: preference load: autoAbbrev = false
(3)(+0000000): Translate: preference load: autoAbbrevStyle =
(3)(+0000000): Translate: preference load: autoExport = immediate
(3)(+0000000): Translate: preference load: autoExportDelay = 1
(3)(+0000000): Translate: preference load: autoExportIdleWait = 10
(3)(+0000002): Translate: preference load: autoExportPrimeExportCacheBatch = 4
(3)(+0000000): Translate: preference load: autoExportPrimeExportCacheDelay = 100
(3)(+0000000): Translate: preference load: autoExportPrimeExportCacheThreshold = 0
(3)(+0000000): Translate: preference load: autoExportTooLong = 10
(3)(+0000000): Translate: preference load: autoPin = false
(3)(+0000000): Translate: preference load: auxImport = false
(3)(+0000000): Translate: preference load: biblatexExtendedDateFormat = true
(3)(+0000000): Translate: preference load: biblatexExtendedNameFormat = false
(3)(+0000000): Translate: preference load: bibtexParticleNoOp = false
(3)(+0000002): Translate: preference load: bibtexURL = url
(3)(+0000000): Translate: preference load: cacheFlushInterval = 5
(3)(+0000000): Translate: preference load: citeCommand = cite
(3)(+0000000): Translate: preference load: citekeyFold = true
(3)(+0000000): Translate: preference load: citekeyFormat = [auth:lower][shorttitle3_3][year]
(3)(+0000000): Translate: preference load: citeprocNoteCitekey = false
(3)(+0000000): Translate: preference load: csquotes =
(3)(+0000000): Translate: preference load: debugLog =
(3)(+0000000): Translate: preference load: exportBibTeXStrings = off
(3)(+0000002): Translate: preference load: git = config
(3)(+0000000): Translate: preference load: importBibTeXStrings = true
(3)(+0000000): Translate: preference load: itemObserverDelay = 100
(3)(+0000000): Translate: preference load: jabrefFormat = 0
(3)(+0000000): Translate: preference load: keyConflictPolicy = keep
(3)(+0000000): Translate: preference load: keyScope = library
(3)(+0000000): Translate: preference load: kuroshiro = false
(3)(+0000000): Translate: preference load: lockedInit = false
(3)(+0000000): Translate: preference load: parseParticles = true
(3)(+0000000): Translate: preference load: postscript =
(3)(+0000002): Translate: preference load: qualityReport = false
(3)(+0000000): Translate: preference load: quickCopyMode = latex
(3)(+0000000): Translate: preference load: quickCopyPandocBrackets = false
(3)(+0000000): Translate: preference load: rawLaTag = #LaTeX
(3)(+0000000): Translate: preference load: relativeFilePaths = false
(3)(+0000000): Translate: preference load: scrubDatabase = false
(3)(+0000000): Translate: preference load: skipFields =
(3)(+0000000): Translate: preference load: skipWords = a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum
(3)(+0000000): Translate: preference load: sorted = false
(3)(+0000000): Translate: preference load: strings =
(3)(+0000000): Translate: preference load: suppressBraceProtection = false
(3)(+0000002): Translate: preference load: suppressTitleCase = false
(3)(+0000000): Translate: preference load: testing = false
(3)(+0000000): Translate: preference load: warnBulkModify = 10
(3)(+0000000): Translate: prefs loaded: { "DOIandURL": "both", "ascii": "", "asciiBibLaTeX": false, "asciiBibTeX": true, "autoAbbrev": false, "autoAbbrevStyle": "", "autoExport": "immediate", "autoExportDelay": 1, "autoExportIdleWait": 10, "autoExportPrimeExportCacheBatch": 4, "autoExportPrimeExportCacheDelay": 100, "autoExportPrimeExportCacheThreshold": 0, "autoExportTooLong": 10, "autoPin": false, "auxImport": false, "biblatexExtendedDateFormat": true, "biblatexExtendedNameFormat": false, "bibtexParticleNoOp": false, "bibtexURL": "url", "cacheFlushInterval": 5, "citeCommand": "cite", "citekeyFold": true, "citekeyFormat": "[auth:lower][shorttitle3_3][year]", "citeprocNoteCitekey": false, "csquotes": "", "debugLog": "", "exportBibTeXStrings": "off", "git": "config", "importBibTeXStrings": true, "itemObserverDelay": 100, "jabrefFormat": 0, "keyConflictPolicy": "keep", "keyScope": "library", "kuroshiro": false, "lockedInit": false, "parseParticles": true, "postscript": "", "qualityReport": false, "quickCopyMode": "latex", "quickCopyPandocBrackets": false, "rawLaTag": "#LaTeX", "relativeFilePaths": false, "scrubDatabase": false, "skipFields": [], "skipWords": [ "a", "ab", "aboard", "about", "above", "across", "after", "against", "al", "along", "amid", "among", "an", "and", "anti", "around", "as", "at", "before", "behind", "below", "beneath", "beside", "besides", "between", "beyond", "but", "by", "d", "da", "das", "de", "del", "dell", "dello", "dei", "degli", "della", "dell", "delle", "dem", "den", "der", "des", "despite", "die", "do", "down", "du", "during", "ein", "eine", "einem", "einen", "einer", "eines", "el", "en", "et", "except", "for", "from", "gli", "i", "il", "in", "inside", "into", "is", "l", "la", "las", "le", "les", "like", "lo", "los", "near", "nor", "of", "off", "on", "onto", "or", "over", "past", "per", "plus", "round", "save", "since", "so", "some", "sur", "than", "the", "through", "to", "toward", "towards", "un", "una", "unas", "under", "underneath", "une", "unlike", "uno", "unos", "until", "up", "upon", "versus", "via", "von", "while", "with", "within", "without", "yet", "zu", "zum" ], "sorted": false, "strings": "", "suppressBraceProtection": false, "suppressTitleCase": false, "testing": false, "warnBulkModify": 10 }
(3)(+0000000): Translate: export caching:true
(3)(+0000002): {BetterBibTeX JSON +90} starting export
(3)(+0000000): {BetterBibTeX JSON +0} header ready
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":281,"legacy":false,"skipChildItems":false}
(3)(+0000006): {better-bibtex +6} serializer cache miss: {"itemID":282,"legacy":false,"skipChildItems":false}
(3)(+0000004): {BetterBibTeX JSON +4} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage key 76EGV72Q
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey lainpleroma.soykaf.comActivityPubPleroma2018
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://blog.soykaf.com/post/activity-pub-in-pleroma/","date":"2018-03-04T11:35:09+01:00","accessDate":"2018-11-04T13:15:30Z","language":"en-US","abstractNote":"Implementing ActivityPub in Pleroma","title":"ActivityPub in Pleroma","creators":[{"firstName":"","lastName":"lain@pleroma.soykaf.com","creatorType":"author"}],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T13:15:30Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/76EGV72Q","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-04T13:15:33Z","dateModified":"2018-11-04T13:15:33Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/K9KTYMZY"}],"notes":["<ul>\n<li>signatures not specified in AP\n<ul>\n<li> 2 kinds of signatures in Mastodon:\n<ul>\n<li>HTTP signatures</li>\n<li>Linked Data Signatures</li>\n</ul>\n</li>\n<li> Pleroma: only</li>\n</ul>\n</li>\n</ul>\n<h2>visibility of posts</h2>\n<blockquote>\n<p>Another thing you’ll have to implement is Mastodon’s visibility model. Mastodon signals post visibility by the adresses it puts into the <code>to</code> and <code>cc</code> fields of the activity. <strong>These visibility suggestions are not enforced by any encryption. Other servers are expected to respect them, but there’s no guarantee.</strong></p>\n<p>Mastodon has four visibily modes:</p>\n<ul>\n<li>Public. This is signalled by having the special public address (<a href=\"https://www.w3.org/ns/activitystreams#Public\">https://www.w3.org/ns/activitystreams#Public</a>) in the <code>to</code> field.</li>\n<li>Unlisted. This is signalled by having the special public address in the <code>cc</code> field.</li>\n<li>Private (aka “Friends Only”). This is signalled by NOT having the public address in the recipient fields, but having the user’s follower address in the <code>to</code> field.</li>\n<li>Direct. This is signalled by having just the recipients’ IDs in the <code>to</code> field and NO public address.</li>\n</ul>\n</blockquote>\n<p> </p>"],"itemID":281,"citekey":"lainpleroma.soykaf.comActivityPubPleroma2018"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":284,"legacy":false,"skipChildItems":false}
(3)(+0000006): {better-bibtex +6} serializer cache miss: {"itemID":285,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key VHNRSSDF
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey ActivityPubOneProtocol
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://schub.io/blog/2018/02/01/activitypub-one-protocol-to-rule-them-all.html","accessDate":"2018-11-04T13:39:18Z","title":"ActivityPub - one protocol to rule them all? - Dennis Schubert - https://schub.io/","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T13:39:18Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/VHNRSSDF","attachments":[{"itemType":"attachment","title":"ActivityPub - one protocol to rule them all? - Dennis Schubert - https://schub.io/","tags":[],"relations":[],"dateAdded":"2018-11-04T13:39:19Z","dateModified":"2018-11-04T13:39:19Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ERD7TREQ"}],"notes":["<ul>\n<li>encryption is not specified in AP, https is optional</li>\n</ul>"],"itemID":284,"citekey":"ActivityPubOneProtocol"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":287,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":288,"legacy":false,"skipChildItems":false}
(3)(+0000004): {BetterBibTeX JSON +4} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key I5XNZTCG
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey SocialCGActivityPubAuthentication
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000002): {BetterBibTeX JSON +2} adding item {"itemType":"webpage","url":"https://www.w3.org/wiki/index.php?title=SocialCG/ActivityPub/Authentication_Authorization&oldid=105248","accessDate":"2018-11-04T13:39:59Z","abstractNote":"best practises for authentication in ActivityPub (not part of the standard)","title":"SocialCG/ActivityPub/Authentication Authorization - W3C Wiki - https://www.w3.org/","creators":[],"tags":[],"relations":[],"dateAdded":"2018-11-04T13:39:59Z","dateModified":"2018-11-25T19:53:34Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/I5XNZTCG","attachments":[{"itemType":"attachment","title":"SocialCG/ActivityPub/Authentication Authorization - W3C Wiki - https://www.w3.org/","tags":[],"relations":[],"dateAdded":"2018-11-04T13:40:00Z","dateModified":"2018-11-04T13:40:00Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/54X2KL4N"}],"notes":[],"itemID":287,"citekey":"SocialCGActivityPubAuthentication","type":"wiki page"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":289,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +2} serializer cache miss: {"itemID":290,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000002): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +2} bbt json: delete webpage key IP8IXZC8
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey SecurityVocabularyHttps
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://web-payments.org/vocabs/security#publicKey","accessDate":"2018-11-04T13:55:43Z","abstractNote":"describes the security vocabulary for web services working with linked data\npart of PaySwarm standardization, still WIP","title":"The Security Vocabulary - https://web-payments.org/","creators":[],"tags":["website"],"relations":[],"dateAdded":"2018-11-04T13:55:43Z","dateModified":"2018-11-25T19:52:48Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/IP8IXZC8","attachments":[{"itemType":"attachment","title":"The Security Vocabulary - https://web-payments.org/","tags":[],"relations":[],"dateAdded":"2018-11-04T13:55:44Z","dateModified":"2018-11-04T13:55:44Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/CNJAIU4F"}],"notes":["<p>is this really the latest published standard?</p>"],"itemID":289,"citekey":"SecurityVocabularyHttps"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":291,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete report version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report key 6SMEWX5C
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report citationKey I-D.cavage-http-signatures
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"report","url":"http://www.ietf.org/internet-drafts/draft-cavage-http-signatures-10.txt","date":"2018-05","extra":"http://www.ietf.org/internet-drafts/draft-cavage-http-signatures-10.txt \nCitation Key: I-D.cavage-http-signatures \nbibtex[howpublished=Working Draft]","title":"Signing HTTP Messages","creators":[{"firstName":"Mark","lastName":"Cavage","creatorType":"author"},{"firstName":"Manu","lastName":"Sporny","creatorType":"author"}],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T14:41:12Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/6SMEWX5C","attachments":[],"notes":["<blockquote>\n<pre class=\"newpage\">`keyId` field is an opaque string that the server can\n use to look up the component they need to validate the signature. It\n could be an SSH key fingerprint, a URL to machine-readable key data,\n an LDAP DN, etc. Management of keys and assignment of `keyId` is out\n of scope for this document.<br /><br /></pre>\n</blockquote>"],"itemID":291,"citekey":"I-D.cavage-http-signatures","number":"draft-cavage-http-signatures-10","publisher":"IETF Secretariat","type":"Internet-Draft"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":293,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":294,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":296,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete blogPost version 0
(3)(+0000002): {BetterBibTeX JSON +0} bbt json: delete blogPost collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +2} bbt json: delete blogPost key WW8I573Z
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete blogPost citationKey TwisterP2PMicroblogging
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete blogPost journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete blogPost libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"blogPost","url":"http://twister.net.co/","accessDate":"2018-11-04T14:50:21Z","language":"en-US","title":"twister | P2P microblogging platform - http://twister.net.co/","shortTitle":"twister | P2P microblogging platform - http","creators":[],"tags":["DHT","Kademlia","Social Network","bitcoin","website","related work"],"relations":[],"dateAdded":"2018-11-04T14:50:21Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/WW8I573Z","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-04T14:50:24Z","dateModified":"2018-11-04T14:50:24Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/CLWQI7EV"},{"itemType":"attachment","title":"sources @ GitHub","tags":[],"relations":[],"dateAdded":"2018-11-04T15:10:20Z","dateModified":"2018-11-04T15:10:20Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/J6GFSSA5"}],"notes":["<ul>\n<li>all posts are stored in a Kademlia DHT\n<ul>\n<li>what are the lookup keys?</li>\n<li>consistency?</li>\n</ul>\n</li>\n</ul>"],"itemID":293,"citekey":"TwisterP2PMicroblogging"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":297,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +0} serializer cache miss: {"itemID":298,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key 5HILC6L8
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage citationKey NearlyAllDHT
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bug","accessDate":"2018-11-04T15:11:54Z","title":"Nearly all DHT implementations vulnerable to 'merge' bug. - Nick's Blog - http://blog.notdot.net/","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T15:11:54Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/5HILC6L8","attachments":[{"itemType":"attachment","title":"Nearly all DHT implementations vulnerable to 'merge' bug. - Nick's Blog - http://blog.notdot.net/","tags":[],"relations":[],"dateAdded":"2018-11-04T15:11:57Z","dateModified":"2018-11-04T15:11:57Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/KX2FT2YT"}],"notes":[],"itemID":297,"citekey":"NearlyAllDHT"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":299,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":300,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":301,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle version 0
(3)(+0000002): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +2} bbt json: delete journalArticle key QVIB6FFM
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey freitasTwisterP2PMicroblogging2013
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"journalArticle","url":"http://arxiv.org/abs/1312.7152","publicationTitle":"arXiv:1312.7152 [cs]","date":"2013-12-26","extra":"arXiv: 1312.7152","accessDate":"2018-11-04T15:14:47Z","libraryCatalog":"arXiv.org","abstractNote":"This paper proposes a new microblogging architecture based on peer-to-peer networks overlays. The proposed platform is comprised of three mostly independent overlay networks. The first provides distributed user registration and authentication and is based on the Bitcoin protocol. The second one is a Distributed Hash Table (DHT) overlay network providing key/value storage for user resources and tracker location for the third network. The last network is a collection of possibly disjoint \"swarms\" of followers, based on the Bittorrent protocol, which can be used for efficient near-instant notification delivery to many users. By leveraging from existing and proven technologies, twister provides a new microblogging platform offering security, scalability and privacy features. A mechanism provides incentive for entities that contribute processing time to run the user registration network, rewarding such entities with the privilege of sending a single unsolicited (\"promoted\") message to the entire network. The number of unsolicited messages per day is defined in order to not upset users.","title":"twister - a P2P microblogging platform","creators":[{"firstName":"Miguel","lastName":"Freitas","creatorType":"author"}],"tags":["Computer Science - Cryptography and Security","Computer Science - Networking and Internet Architecture","related work"],"relations":[],"dateAdded":"2018-11-04T15:14:47Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/QVIB6FFM","attachments":[{"itemType":"attachment","title":"arXiv:1312.7152 PDF","tags":[],"relations":[],"dateAdded":"2018-11-04T15:14:50Z","dateModified":"2018-11-04T15:14:50Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/IEGC9UPK"},{"itemType":"attachment","title":"arXiv.org Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-04T15:14:54Z","dateModified":"2018-11-04T15:14:54Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/EUHUKS6U"}],"notes":["<p>section on hashtags:</p>\n<blockquote>\n<p> </p>\n<p>Just like mentioning, hashtags must be detected in the content of new mes-<br />sages being posted to the network. A copy of the message is sent to a special<br />address of multi-value list storage:<br />IDhashtagt = H ([hashtagt, “hashtag”, “multi”])<br />This is pretty much the same mechanism of downward message thread nav-<br />igation except for an additional feature: a hashtag creates a new swarm similar<br />to IDswarm j . Neighbors of such IDhashtagt are be forced to join this virtual<br />swarm which has no sequential content (file). Posts that include the hashtag are<br />DHT routed to a neighbor member of the swarm, from which they are broadcast<br />to the swarm’s members.<br />8<br />This swarm is therefore just used to create a distributed tracker and broad-<br />cast mechanism for users willing to monitor such hashtags. New members join-<br />ing the swarm may also request the last messages from the multi-valued storage<br />(DHT network), without guarantee of completeness.</p>\n<p> </p>\n<p> </p>\n<div class=\"answer\"> </div>\n<div class=\"answer\">Swarm is used for posts only. Both public and private (Direct Messages).</div>\n<div class=\"answer\"> </div>\n</blockquote>\n<div class=\"answer\">DHT storage provides no guarantees</div>\n<div class=\"answer\">BitTorrent tracker storage: neighbours responsible for converting DHT messages to bittorrent file-like content; itself is read-only</div>\n<ul>\n<li class=\"answer\">redundancy of responsible neighbours possible?</li>\n<li class=\"answer\">what is this read-only file-like structure? storage guarantees?\n<ul>\n<li class=\"answer\">\"members can choose to only hold the latest messages\" -&gt; so no storage guarantees, consistency, explicit sharding</li>\n</ul>\n</li>\n</ul>"],"itemID":299,"citekey":"freitasTwisterP2PMicroblogging2013"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":303,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +4} serializer cache miss: {"itemID":304,"legacy":false,"skipChildItems":false}
(3)(+0000004): {BetterBibTeX JSON +4} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key UWGWQNSC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey SocialrelayPublicPost
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://git.feneas.org/jaywink/social-relay","accessDate":"2018-11-04T15:26:57Z","language":"en","abstractNote":"Public post relay for the Diaspora federated social network protocol","title":"social-relay: Public post relay for the Diaspora federated social network protocol","creators":[],"tags":["Diaspora","relay","code","related work"],"relations":[],"dateAdded":"2018-11-04T15:26:57Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/UWGWQNSC","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-04T15:27:05Z","dateModified":"2018-11-04T15:27:05Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/J49F8QDG"}],"notes":[],"itemID":303,"citekey":"SocialrelayPublicPost","publicationTitle":"GitLab"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":306,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":307,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key 96F7ZIWD
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey PublicPostFederation2017
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000002): {BetterBibTeX JSON +2} adding item {"itemType":"webpage","url":"https://discourse.diasporafoundation.org/t/public-post-federation/264/111","date":"2017-09-05T01:38:35+00:00","accessDate":"2018-11-04T21:25:13Z","language":"en","abstractNote":"I will only address the claim of better scaling now, and agree on disagreeing on everything else. The worker distributing public entities generates the payload exactly once, then leverages typhoeus to actually do the requests. typhoeus internally is calling libcurl-multi multithreaded, with a concurrency we define in the config. If you want, you can say that this thing does one job: deliver and deliver fast. Delivering requests is not a bottleneck anymore and it hasn’t been in quite a while. I...","title":"Public post federation","creators":[],"tags":["unread","Diaspora","relay","related work"],"relations":[],"dateAdded":"2018-11-04T21:25:13Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/96F7ZIWD","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-04T21:25:15Z","dateModified":"2018-11-04T21:25:15Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/5JW2W3RZ"}],"notes":[],"itemID":306,"citekey":"PublicPostFederation2017","publicationTitle":"diaspora* Discourse"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":308,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +4} serializer cache miss: {"itemID":309,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage key IXFGTNRG
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey RelayServersPublic
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://wiki.diasporafoundation.org/Relay_servers_for_public_posts","accessDate":"2018-11-04T21:41:08Z","title":"Relay servers for public posts - diaspora* project wiki - https://wiki.diasporafoundation.org/","creators":[],"tags":["Diaspora","relay","related work"],"relations":[],"dateAdded":"2018-11-04T21:41:08Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/IXFGTNRG","attachments":[{"itemType":"attachment","title":"Relay servers for public posts - diaspora* project wiki - https://wiki.diasporafoundation.org/","tags":[],"relations":[],"dateAdded":"2018-11-04T21:41:08Z","dateModified":"2018-11-04T21:41:08Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/DD5B8HJH"}],"notes":[],"itemID":308,"citekey":"RelayServersPublic"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":310,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":311,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key IR2DE37E
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey ActivityPubRocksHttps
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://activitypub.rocks/implementation-report/","accessDate":"2018-11-04T21:49:08Z","title":"ActivityPub Rocks! - https://activitypub.rocks/","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T21:49:08Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/IR2DE37E","attachments":[{"itemType":"attachment","title":"ActivityPub Rocks! - https://activitypub.rocks/","tags":[],"relations":[],"dateAdded":"2018-11-04T21:49:08Z","dateModified":"2018-11-04T21:49:08Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/PQ2H3F7B"}],"notes":[],"itemID":310,"citekey":"ActivityPubRocksHttps"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":315,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":316,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete document version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document key KJFEFGGY
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document citationKey webberActivityPubDecentralizedDistributed
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"document","url":"https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017/raw/master/final-documents/activitypub-decentralized-distributed.pdf","title":"ActivityPub: From Decentralized to Distributed","creators":[{"firstName":"Christopher Lemmer","lastName":"Webber","creatorType":"author"},{"firstName":"Manu","lastName":"Sporny","creatorType":"author"}],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T22:02:43Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/KJFEFGGY","attachments":[{"itemType":"attachment","title":"activitypub-decentralized-distributed.pdf","tags":[],"relations":[],"dateAdded":"2018-11-04T22:03:23Z","dateModified":"2018-11-04T22:03:27Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/MVL5J77P"}],"notes":["<ul>\n<li>introduces decentrelazide identifiers and E2E crypto</li>\n</ul>"],"itemID":315,"citekey":"webberActivityPubDecentralizedDistributed"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":317,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":318,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key HNSYKUET
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey RWOTWhitePapers
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://www.weboftrust.info/papers.html","accessDate":"2018-11-04T22:09:25Z","title":"RWOT: White Papers - https://www.weboftrust.info/","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-04T22:09:25Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/HNSYKUET","attachments":[{"itemType":"attachment","title":"RWOT: White Papers - https://www.weboftrust.info/","tags":[],"relations":[],"dateAdded":"2018-11-04T22:09:25Z","dateModified":"2018-11-04T22:09:25Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/3K2BUKBX"}],"notes":[],"itemID":317,"citekey":"RWOTWhitePapers"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":322,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":323,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key 6EIWSBUM
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey LinkedDataSignatures
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://w3c-dvcg.github.io/ld-signatures/","accessDate":"2018-11-04T22:27:55Z","title":"Linked Data Signatures 1.0 - https://w3c-dvcg.github.io/","creators":[],"tags":["Authentication","unread","ActivityPub","signatures"],"relations":[],"dateAdded":"2018-11-04T22:27:55Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/6EIWSBUM","attachments":[{"itemType":"attachment","title":"Linked Data Signatures 1.0 - https://w3c-dvcg.github.io/","tags":[],"relations":[],"dateAdded":"2018-11-04T22:27:55Z","dateModified":"2018-11-04T22:27:55Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/7D5JC4JN"}],"notes":[],"itemID":322,"citekey":"LinkedDataSignatures"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":324,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":325,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key HEWQPJKC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey ActivityVocabularyHttps
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://www.w3.org/TR/activitystreams-vocabulary/","accessDate":"2018-11-05T01:00:03Z","language":"en","title":"Activity Vocabulary - https://www.w3.org/","shortTitle":"Activity Vocabulary - https","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-05T01:00:03Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/HEWQPJKC","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-05T01:00:05Z","dateModified":"2018-11-05T01:00:05Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/MWJARNGE"}],"notes":[],"itemID":324,"citekey":"ActivityVocabularyHttps"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":326,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":327,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key MDIGE99R
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey MastodonPubrelay
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000002): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://source.joinmastodon.org/mastodon/pub-relay","accessDate":"2018-11-05T01:03:36Z","language":"en","abstractNote":"A service-type ActivityPub actor that will re-broadcast anything sent to it to anyone who subscribes to it.","title":"mastodon / pub-relay","creators":[],"tags":["unread","related work"],"relations":[],"dateAdded":"2018-11-05T01:03:36Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/MDIGE99R","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-05T01:03:38Z","dateModified":"2018-11-05T01:03:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/AX86PS3Z"}],"notes":[],"itemID":326,"citekey":"MastodonPubrelay","publicationTitle":"GitLab"}
(3)(+0000000): {better-bibtex +2} serializer cache miss: {"itemID":328,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":329,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key BAC8YHY9
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey LinkedDataSignaturesa
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000002): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +2} adding item {"itemType":"webpage","url":"https://github.com/w3c/activitypub/issues/203","accessDate":"2018-11-05T01:19:30Z","language":"en","abstractNote":"9.2 says to include a &quot;link to the public key&quot; in the actors profile object, but nowhere is it mentioned what name this should have in the profile object, AFAICT. When Linked Data Signatu...","title":"Linked Data Signatures + public key URI · Issue #203 · w3c/activitypub","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-05T01:19:30Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/BAC8YHY9","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-05T01:19:33Z","dateModified":"2018-11-05T01:19:33Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/IEUK5ATJ"}],"notes":[],"itemID":328,"citekey":"LinkedDataSignaturesa","publicationTitle":"GitHub"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":331,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":332,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key T5CY5288
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey LitePubSpecificationDraft
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://litepub.social/litepub/overview.html","accessDate":"2018-11-11T12:46:05Z","title":"LitePub specification draft","creators":[],"tags":[],"relations":[],"dateAdded":"2018-11-11T12:46:05Z","dateModified":"2018-11-25T19:54:32Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/T5CY5288","attachments":[{"itemType":"attachment","title":"- https://litepub.social/","tags":[],"relations":[],"dateAdded":"2018-11-11T12:46:05Z","dateModified":"2018-11-11T12:46:05Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/H5TEPPTC"}],"notes":[],"itemID":331,"citekey":"LitePubSpecificationDraft"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":334,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":333,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete document version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document key 222I79G9
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document citationKey closeACLsDon
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"document","url":"http://waterken.sourceforge.net/aclsdont/current.pdf","accessDate":"2018-11-11T13:36:11Z","abstractNote":"The ACL model is unable to make correct access\ndecisions for interactions involving more than two\nprincipals, since required information is not retained\nacross message sends. Though this deficiency has long\nbeen documented in the published literature, it is\nnot widely understood. This logic error in the ACL\nmodel is exploited by both the clickjacking and Cross-\nSite Request Forgery attacks that affect many Web\napplications.","title":"ACLs don't","creators":[{"firstName":"Tyler","lastName":"Close","creatorType":"author"}],"tags":["unread"],"relations":[],"dateAdded":"2018-11-11T13:49:13Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/222I79G9","attachments":[{"itemType":"attachment","title":"current.pdf","tags":[],"relations":[],"dateAdded":"2018-11-11T13:36:11Z","dateModified":"2018-11-11T13:49:13Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/AA86NIVA"}],"notes":[],"itemID":334,"citekey":"closeACLsDon"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":336,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":320,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key EFI8GPWG
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey DecentralizedPublicKey
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","url":"https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust/raw/master/final-documents/dpki.pdf","accessDate":"2018-11-04T22:11:55Z","conferenceName":"Rebooting the Web of Trust","title":"Decentralized Public Key Infrastructure","creators":[],"tags":["unread"],"relations":[],"dateAdded":"2018-11-11T14:13:12Z","dateModified":"2018-11-25T19:52:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/EFI8GPWG","attachments":[{"itemType":"attachment","title":"dpki.pdf","tags":[],"relations":[],"dateAdded":"2018-11-04T22:11:55Z","dateModified":"2018-11-11T14:13:12Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/X27QDC2K"}],"notes":[],"itemID":336,"citekey":"DecentralizedPublicKey"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":338,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +2} serializer cache miss: {"itemID":339,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +4} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key NSR97S5F
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey robinsonDiasporaSocialRelay
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://raw.githubusercontent.com/jaywink/social-relay/master/docs/relays.md","accessDate":"2018-11-11T17:51:58Z","title":"Diaspora* Social Relay design concept","creators":[{"firstName":"Jason","lastName":"Robinson","creatorType":"author"}],"tags":["unread","related work"],"relations":[],"dateAdded":"2018-11-11T17:51:58Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/NSR97S5F","attachments":[{"itemType":"attachment","tags":[],"relations":[],"dateAdded":"2018-11-11T17:52:01Z","dateModified":"2018-11-11T17:52:01Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/8LBDH2VK"}],"notes":[],"itemID":338,"citekey":"robinsonDiasporaSocialRelay"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":351,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":340,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key QEQEJLVC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey Scribe-NGC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000002): {BetterBibTeX JSON +2} adding item {"itemType":"conferencePaper","series":"Lecture Notes in Computer Science","volume":"2233","place":"UCL, London, UK.","pages":"30-43","date":"2001-11","extra":"Citation Key: Scribe-NGC","title":"Scribe: The design of a large-scale event notification infrastructure","creators":[{"firstName":"Antony","lastName":"Rowstron","creatorType":"author"},{"firstName":"Anne-Marie","lastName":"Kermarrec","creatorType":"author"},{"firstName":"Miguel","lastName":"Castro","creatorType":"author"},{"firstName":"Peter","lastName":"Druschel","creatorType":"author"},{"firstName":"Jon","lastName":"Crowcroft","creatorType":"editor"},{"firstName":"Markus","lastName":"Hofmann","creatorType":"editor"}],"tags":["unread","DHT","Pastry","related work"],"relations":[],"dateAdded":"2018-11-11T19:57:55Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/QEQEJLVC","attachments":[{"itemType":"attachment","title":"scribe.pdf","tags":[{"tag":"DHT"}],"relations":[],"dateAdded":"2018-11-11T19:35:53Z","dateModified":"2018-11-11T19:59:49Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/LNYASSPU"}],"notes":[],"itemID":351,"citekey":"Scribe-NGC","publicationTitle":"Networked Group Communication, Third International COST264 Workshop (NGC'2001)"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":355,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":360,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key MWWXV9WM
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey PAST-Hotos
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","place":"Schoss Elmau, Germany","date":"2001-05","extra":"Citation Key: PAST-Hotos","title":"PAST: A Persistent and Anonymous Store","creators":[{"firstName":"Peter","lastName":"Druschel","creatorType":"author"},{"firstName":"Antony","lastName":"Rowstron","creatorType":"author"}],"tags":["unread","DHT","Pastry","related work"],"relations":[],"dateAdded":"2018-11-11T19:57:56Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/MWWXV9WM","attachments":[{"itemType":"attachment","title":"Druschel und Rowstron - 2001 - PAST A Persistent and Anonymous Store.pdf","tags":[],"relations":[],"dateAdded":"2018-11-11T20:00:59Z","dateModified":"2018-11-11T20:00:59Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ICE9WUDR"}],"notes":[],"itemID":355,"citekey":"PAST-Hotos","publicationTitle":"HotOS VIII"}
(3)(+0000004): {better-bibtex +4} serializer cache miss: {"itemID":357,"legacy":false,"skipChildItems":false}
(3)(+0000006): {better-bibtex +6} serializer cache miss: {"itemID":342,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key N5XM2L24
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey Pastry-Middleware
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","place":"Heidelberg, Germany","pages":"329-350","date":"2001-11","extra":"Citation Key: Pastry-Middleware","title":"Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems","creators":[{"firstName":"Antony","lastName":"Rowstron","creatorType":"author"},{"firstName":"Peter","lastName":"Druschel","creatorType":"author"}],"tags":["unread","DHT","Pastry","related work"],"relations":[],"dateAdded":"2018-11-11T19:57:57Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/N5XM2L24","attachments":[{"itemType":"attachment","title":"pastry.pdf","tags":[],"relations":[],"dateAdded":"2018-11-11T19:50:11Z","dateModified":"2018-11-11T19:59:04Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/WRBE2SX3"}],"notes":["<div style=\"left: 249.6px; top: 524.444px; font-size: 16.6043px; font-family: serif; transform: scaleX(0.865483);\">takes into account network locality; it seeks to minimize the distance mes-</div>\n<div style=\"left: 224.601px; top: 544.444px; font-size: 16.6043px; font-family: serif; transform: scaleX(0.840671);\">sages travel, according to a scalar proximity metric like the number of IP routing hops.</div>\n<div style=\"left: 224.601px; top: 544.444px; font-size: 16.6043px; font-family: serif; transform: scaleX(0.840671);\"> </div>\n<div style=\"left: 224.601px; top: 544.444px; font-size: 16.6043px; font-family: serif; transform: scaleX(0.840671);\">There are already some distributed messaging or storage systems built on-top of pastry</div>\n<div style=\"left: 224.601px; top: 544.444px; font-size: 16.6043px; font-family: serif; transform: scaleX(0.840671);\"> </div>\n<div style=\"left: 224.601px; top: 544.444px; font-size: 16.6043px; font-family: serif; transform: scaleX(0.840671);\">unmaintained since 2009</div>"],"itemID":357,"citekey":"Pastry-Middleware","publicationTitle":"IFIP/ACM International Conference on Distributed Systems Platforms (Middleware)"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":363,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":361,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key NTU8JLHI
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey SplitStream-SOSP
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","place":"Bolton Landing, New York, USA","date":"2003-10","extra":"Citation Key: SplitStream-SOSP","title":"SplitStream: High-bandwidth multicast in a cooperative environment","creators":[{"firstName":"Miguel","lastName":"Castro","creatorType":"author"},{"firstName":"Peter","lastName":"Druschel","creatorType":"author"},{"firstName":"Anne-Marie","lastName":"Kermarrec","creatorType":"author"},{"firstName":"Animesh","lastName":"Nandi","creatorType":"author"},{"firstName":"Antony","lastName":"Rowstron","creatorType":"author"},{"firstName":"Atul","lastName":"Singh","creatorType":"author"}],"tags":["unread","related work"],"relations":[],"dateAdded":"2018-11-11T20:22:50Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/NTU8JLHI","attachments":[{"itemType":"attachment","title":"splitstream-sosp.pdf","tags":[],"relations":[],"dateAdded":"2018-11-11T20:21:20Z","dateModified":"2018-11-11T20:22:54Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/Z3H57LAW"}],"notes":["<p>achieves higher throughput by splitting up/ sharding multicast data streams over multiple paths</p>\n<p> </p>\n<p>wants to avoid high load on middle nodes</p>"],"itemID":363,"citekey":"SplitStream-SOSP","publicationTitle":"19th ACM Symposium on Operating Systems Principles (SOSP'03)"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":365,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":366,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":369,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key JZQJ6KKQ
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey mozoTagIndexedDHT2006
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","pages":"77-78","date":"Sept 2006","DOI":"10.1109/P2P.2006.43","libraryCatalog":"IEEE Xplore","conferenceName":"Sixth IEEE International Conference on Peer-to-Peer Computing (P2P'06)","abstractNote":"Social applications associate a set of user defined keywords named tags when publishing social objects in order to locate them later. We propose T-DHT, a hybrid unstructured-structured DHT based approach, to cope with the high demanding requirements of social applications, in a fully scalable, distributed and balanced way. T-DHT behaves as a structured DHT when publishing \"tag, social-object\" associations, and as an unstructured filter driven network when searching for the social-objects by means of any tag combination. The publishing process stores tag information across node links in order to drive adequately the later search operations in at most O(Log(N)). The search process takes at most O(logN) node hops for any tag combination and uses the previously stored node link tag information. Although T-DHT has been devised to build a scalable social application infrastructure, it can also be applied to solve general peer-to-peer keyword search problems","title":"Tag Indexed DHT for Scalable Search Infrastructure in Social NetworkApplications","creators":[{"firstName":"A.","lastName":"Mozo","creatorType":"author"},{"firstName":"J.","lastName":"Salvachua","creatorType":"author"}],"tags":["unread","computational complexity","distributed hash table","distributed processing","Ethernet networks","file organisation","Filters","hybrid unstructured-structured DHT","indexing","Information filtering","information retrieval","Keyword search","node link tag information","Peer to peer computing","peer-to-peer keyword search","Publishing","Routing","Scalability","scalable search infrastructure","scalable social application infrastructure","search operation process","social network application","Social network services","social object publishing","social object search","social sciences computing","Switches","tag indexed DHT","unstructured filter driven network","user defined keyword","related work"],"relations":[],"dateAdded":"2018-11-11T22:39:33Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/JZQJ6KKQ","attachments":[{"itemType":"attachment","title":"IEEE Xplore Abstract Record","tags":[],"relations":[],"dateAdded":"2018-11-11T22:39:39Z","dateModified":"2018-11-11T22:39:39Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/3II6ZVET"},{"itemType":"attachment","title":"t-dht.pdf","tags":[],"relations":[],"dateAdded":"2018-11-11T22:44:46Z","dateModified":"2018-11-11T22:44:46Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ZFTAMNNU"}],"notes":[],"itemID":365,"citekey":"mozoTagIndexedDHT2006","publicationTitle":"Sixth IEEE International Conference on Peer-to-Peer Computing (P2P'06)"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":373,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +4} serializer cache miss: {"itemID":371,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key AGA72WIR
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey paul2017lilliput
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000002): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","date":"2017","extra":"Citation Key: paul2017lilliput \nbibtex[organization=IEEE (26th International Conference on Computer Communications and Networks (ICCCN))]","title":"Lilliput: A Storage Service for Lightweight Peer-to-Peer Online Social Networks","creators":[{"firstName":"Thomas","lastName":"Paul","creatorType":"author"},{"firstName":"Niklas","lastName":"Lochschmidt","creatorType":"author"},{"firstName":"Hani","lastName":"Salah","creatorType":"author"},{"firstName":"Anwitaman","lastName":"Datta","creatorType":"author"},{"firstName":"Thorsten","lastName":"Strufe","creatorType":"author"}],"tags":["DHT","Social Network","related work"],"relations":[],"dateAdded":"2018-11-12T17:13:44Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/AGA72WIR","attachments":[{"itemType":"attachment","title":"000.pdf","tags":[],"relations":[],"dateAdded":"2018-11-12T16:12:53Z","dateModified":"2018-11-12T17:13:49Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/36XSSCDU"}],"notes":["<ul>\n<li>focuses on high churn rate/ volatility of nodes, which is not necessary for my use case\n<ul>\n<li>are some of the presented techniques still useful?</li>\n</ul>\n</li>\n<li>replica groups/ data overlays can form the groups responsible for a hashtag (redundancy) ???\n<ul>\n<li>small overlays, using flooding within the group</li>\n</ul>\n</li>\n<li>consistency even with frequent updates</li>\n<li>security goals: confidentiality mostly irrelevant for us</li>\n<li>has <strong>no concept of keywords, only (user) profiles</strong>\n<ul>\n<li>we could try to emulate a keyword by re-purposing profile = hashtag/ keyword, but do semantics then still match?</li>\n<li>what arg-key to use? has to be unique per profile/ keyword</li>\n</ul>\n</li>\n<li>=&gt; not really usable for us, except for redundancy</li>\n</ul>"],"itemID":373,"citekey":"paul2017lilliput"}
(3)(+0000000): {better-bibtex +2} serializer cache miss: {"itemID":378,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":379,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key LZF76BQI
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey twitterincNumbersTwitterStatistics2011
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://blog.twitter.com/official/en_us/a/2011/numbers.html","date":"14 March 2011","extra":"Citation Key: twitterincNumbersTwitterStatistics2011","accessDate":"2018-11-24T09:26:24Z","language":"English","title":"#numbers: Twitter statistics from 2009","creators":[{"name":"Twitter Inc.","creatorType":"author"}],"tags":["statistics"],"relations":[],"dateAdded":"2018-11-24T09:26:24Z","dateModified":"2019-03-04T21:31:40Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/LZF76BQI","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-24T09:26:29Z","dateModified":"2018-11-24T09:26:29Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/BZGLNP2K"}],"notes":[],"itemID":378,"citekey":"twitterincNumbersTwitterStatistics2011"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":380,"legacy":false,"skipChildItems":false}
(3)(+0000008): {better-bibtex +8} serializer cache miss: {"itemID":381,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key HSUNWPLS
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey TwitterUsageStatistics
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"http://www.internetlivestats.com/twitter-statistics/","accessDate":"2018-11-24T09:26:31Z","language":"en","abstractNote":"How many tweets are sent per second, minute, day, month, and year? Twitter statistics with live counter showing estimated current tweets in real time. Current and historical numbers, growth rates, and curious facts. Charts, infographics, data, and interesting info.","title":"Twitter Usage Statistics - Internet Live Stats - http://www.internetlivestats.com/","shortTitle":"Twitter Usage Statistics - Internet Live Stats - http","creators":[],"tags":[],"relations":[],"dateAdded":"2018-11-24T09:26:31Z","dateModified":"2018-11-25T19:52:16Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/HSUNWPLS","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2018-11-24T09:26:44Z","dateModified":"2018-11-24T09:26:44Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/YJQV524K"}],"notes":[],"itemID":380,"citekey":"TwitterUsageStatistics"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":384,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":386,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":385,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key EKCBHCMH
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey perfittMegaphoneFaultTolerant2010
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","pages":"469-477","date":"May 2010","DOI":"10.1109/ICIW.2010.77","libraryCatalog":"IEEE Xplore","conferenceName":"2010 Fifth International Conference on Internet and Web Applications and Services","abstractNote":"Micro-blogging, or the posting of weblogs entries that have a small number of characters (160 characters or less), has recently become more mainstream. Services that implement micro-blogging such as Twitter are usually based on the client- server model. This limits their scalability and fault tolerance. In this paper, we present a new secure microblogging system that is based on a peer-to-peer network. The network is arranged based on user certificates and is scalable, does not have a single point of failure, and does not depend on a single vendor's proprietary service. The paper outlines the protocol specifics and provides implementation details for a secure, scaleable microblogging system.","title":"Megaphone: Fault Tolerant, Scalable, and Trustworthy P2P Microblogging","shortTitle":"Megaphone","creators":[{"firstName":"T.","lastName":"Perfitt","creatorType":"author"},{"firstName":"B.","lastName":"Englert","creatorType":"author"}],"tags":["Internet","unread","DHT","Social Network","Pastry","Peer to peer computing","Bandwidth","Computer science","Fault tolerance","fault tolerant","fault tolerant computing","Information services","megaphone","Message passing","microblogging","multicast tree","nodes","Organizing","P2P","peer-to-peer computing","peer-to-peer network","scaleable microblogging system","trustworthy P2P microblogging","Web services","Web sites","Weblogs entries","PubSub","multicast","scribe","related work"],"relations":[],"dateAdded":"2018-11-26T11:52:59Z","dateModified":"2019-02-18T12:11:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/EKCBHCMH","attachments":[{"itemType":"attachment","title":"IEEE Xplore Abstract Record","tags":[],"relations":[],"dateAdded":"2018-11-26T11:53:15Z","dateModified":"2018-11-26T11:53:15Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/XZBNTZAX"},{"itemType":"attachment","title":"IEEE Xplore Full Text PDF","tags":[],"relations":[],"dateAdded":"2018-11-26T11:53:03Z","dateModified":"2018-11-26T11:53:03Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/JR6BPLD3"}],"notes":["<ul>\n<li>\"Poster\" at the top of a multicast tree could be the node responsible for the hashtag(slice)</li>\n<li>utilizing the described following of a user for following a hashtag?\n<ul>\n<li>difference: ID of node != hash(hashtag) -&gt; so not the node itself, but a neighbour</li>\n<li>hash(hashtag) as group-ID of multicast group</li>\n<li>join message sent towards that ID</li>\n</ul>\n</li>\n<li>problem: caching always increases the number of parties needed to be trusted, right?</li>\n<li>in addition to this, strategy on how to choose the tag responsibles is needed\n<ul>\n<li>probably just by IP?</li>\n</ul>\n</li>\n<li>session keys are unnecessary for public posts</li>\n<li>LAST X for retrieving old messages\n<ul>\n<li>in our use case better use a time period (start + end timestamp)</li>\n</ul>\n</li>\n<li>do we need a session key? using TLS between nodes might be nice\n<ul>\n<li>but which certs? Is opportunistic encryption still better than nothing?</li>\n<li>each node is supposed to be run together with an instance (additional ones might be possible) -&gt; domain name + cert anyways</li>\n</ul>\n</li>\n</ul>"],"itemID":384,"citekey":"perfittMegaphoneFaultTolerant2010","publicationTitle":"2010 Fifth International Conference on Internet and Web Applications and Services"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":388,"legacy":false,"skipChildItems":false}
(3)(+0000006): {better-bibtex +6} serializer cache miss: {"itemID":387,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key K5MYXUTW
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey terpstraPeertoPeerApproachContentBased
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000002): {BetterBibTeX JSON +2} adding item {"itemType":"journalArticle","pages":"8","libraryCatalog":"Zotero","language":"en","abstractNote":"Publish/subscribe systems are successfully used to decouple distributed applications. However, their efficiency is closely tied to the topology of the underlying network, the design of which has been neglected. Peer-to-peer network topologies can offer inherently bounded delivery depth, load sharing, and self-organisation. In this paper, we present a contentbased publish/subscribe system routed over a peer-to-peer topology graph. The implications of combining these approaches are explored and a particular implementation using elements from Rebeca and Chord is proven correct.","title":"A Peer-to-Peer Approach to Content-Based Publish/Subscribe","creators":[{"firstName":"Wesley W","lastName":"Terpstra","creatorType":"author"},{"firstName":"Stefan","lastName":"Behnel","creatorType":"author"},{"firstName":"Ludger","lastName":"Fiege","creatorType":"author"},{"firstName":"Andreas","lastName":"Zeidler","creatorType":"author"},{"firstName":"Alejandro P","lastName":"Buchmann","creatorType":"author"}],"tags":["unread","DHT","PubSub","multicast","related work","Chord","REBECA"],"relations":[],"dateAdded":"2018-11-26T15:15:54Z","dateModified":"2019-02-18T12:58:41Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/K5MYXUTW","attachments":[{"itemType":"attachment","title":"Terpstra et al. - A Peer-to-Peer Approach to Content-Based PublishS.pdf","tags":[],"relations":[],"dateAdded":"2018-11-26T15:15:53Z","dateModified":"2018-11-26T15:15:55Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/YXAPRET9"}],"notes":["<blockquote>\n<p>Our contribution in this paper is to take the<br />graph topology and management of a peer-to-peer network<br />and couple it with the highly flexible routing of a pub-<br />lish/subscribe system. Of particular interest, our network<br />preserves the use of fully general filters</p>\n</blockquote>\n<ul>\n<li>creates multiple multicast trees on a Chord DHT to avoid overload of subtrees</li>\n</ul>"],"itemID":388,"citekey":"terpstraPeertoPeerApproachContentBased"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":390,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":391,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key 7UTYGLXP
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey mozoScalableTagSearch2008
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000002): {BetterBibTeX JSON +2} adding item {"itemType":"journalArticle","url":"http://linkinghub.elsevier.com/retrieve/pii/S0140366407003222","volume":"31","issue":"3","pages":"423-436","publicationTitle":"Computer Communications","ISSN":"01403664","date":"2/2008","DOI":"10.1016/j.comcom.2007.08.035","accessDate":"2018-12-10T15:59:30Z","libraryCatalog":"Crossref","language":"en","title":"Scalable tag search in social network applications","creators":[{"firstName":"Alberto","lastName":"Mozo","creatorType":"author"},{"firstName":"Joaquín","lastName":"Salvachúa","creatorType":"author"}],"tags":["DHT","Social Network","distributed hash table","bloom filter","store and query","search","related work"],"relations":[],"dateAdded":"2018-12-10T15:59:30Z","dateModified":"2019-02-18T13:19:37Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/7UTYGLXP","attachments":[{"itemType":"attachment","title":"Mozo und Salvachúa - 2008 - Scalable tag search in social network applications.pdf","tags":[],"relations":[],"dateAdded":"2018-12-10T16:00:24Z","dateModified":"2018-12-10T16:00:24Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ATNQRKIX"}],"notes":["<ul>\n<li>focus on also finding tag conjunctions efficiently (out-of-scope for my research)</li>\n<li>aims to solve \"hot-spot\" problem of popular hashtags overloading a node</li>\n<li>no subscription, only store-and-query</li>\n<li>redundancy, security?</li>\n<li>node responsible for a tag still stores reference of tags (and their posts), but in a bloom filter</li>\n<li>links of a node: how many of them?</li>\n<li>nodes other than the \"responsible\" one can directly fulfill the task of pointing towards the destination node\n<ul>\n<li>-&gt; potential attack vector of non-responsible nodes just lying/ pointing to a subset only?</li>\n<li>this even eliminates the need for an attacker to obtain the DHT ID responsible for the tag</li>\n</ul>\n</li>\n<li>related work mentioned in introduction might be interesting, although suffering from hot-spot problems\n<ul>\n<li>for single key words: 28, 29?</li>\n</ul>\n</li>\n<li>strategies on how to deal with hot-spot around the tag are BULLSHIT, especially for a single-tag use case</li>\n<li>fact that posts themselves are spread all over the DHT, this approach is bad for subscription\n<ul>\n<li>subscription to responsible node possible, but this removes optimizations and generates many locate packets</li>\n<li>or does the node itself store at least the direct reference? but then: hot-spot</li>\n</ul>\n</li>\n</ul>"],"itemID":390,"citekey":"mozoScalableTagSearch2008"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":396,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram version 0
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete computerProgram collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram key Y88BE28F
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram citationKey RWOT5BostonMassachusetts2018
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"computerProgram","url":"https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2017","date":"2018-12-11T04:24:35Z","extra":"original-date: 2017-04-28T22:02:00Z","accessDate":"2018-12-17T22:44:01Z","libraryCatalog":"GitHub","programmingLanguage":"HTML","title":"RWOT5 in Boston, Massachusetts (October 2017). Contribute to WebOfTrustInfo/rebooting-the-web-of-trust-fall2017 development by creating an account on GitHub","creators":[],"tags":[],"relations":[],"dateAdded":"2018-12-17T22:44:02Z","dateModified":"2018-12-17T22:44:02Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/Y88BE28F","attachments":[],"notes":[],"itemID":396,"citekey":"RWOT5BostonMassachusetts2018","publisher":"Web of Trust Info"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":398,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":399,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key SKIEMMJW
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey blog!ActivityPubWorseBetter2019
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000002): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://blog.dereferenced.org/activitypub-the-worse-is-better-approach-to-federated-social-networking","date":"2019-01-07T01:36:48Z","accessDate":"2019-01-13T20:59:53Z","language":"en","abstractNote":"This is the first article in a series that will be a fairly critical review of ActivityPub from a trust & safety perspective. Stay tun...","title":"ActivityPub: The \"Worse Is Better\" Approach to Federated Social Networking","shortTitle":"ActivityPub","creators":[{"firstName":"kaniini's","lastName":"blog!","creatorType":"author"}],"tags":[],"relations":[],"dateAdded":"2019-01-13T20:59:53Z","dateModified":"2019-01-13T20:59:53Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/SKIEMMJW","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2019-01-13T20:59:55Z","dateModified":"2019-01-13T20:59:55Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/684D45MA"}],"notes":[],"itemID":398,"citekey":"blog!ActivityPubWorseBetter2019","publicationTitle":"kaniini's blog!"}
(3)(+0000000): {better-bibtex +2} serializer cache miss: {"itemID":401,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":402,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key CPELY3IK
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey GroupsOStatusCommunity
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://www.w3.org/community/ostatus/wiki/Groups","accessDate":"2019-02-18T12:19:29Z","title":"Groups - OStatus Community Group","creators":[],"tags":["related work"],"relations":[],"dateAdded":"2019-02-18T12:19:29Z","dateModified":"2019-02-18T12:32:06Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/CPELY3IK","attachments":[{"itemType":"attachment","title":"Groups - OStatus Community Group - https://www.w3.org/","tags":[],"relations":[],"dateAdded":"2019-02-18T12:19:30Z","dateModified":"2019-02-18T12:19:30Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ZJ7NRYA2"}],"notes":[],"itemID":401,"citekey":"GroupsOStatusCommunity"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":403,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":404,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key RX2F7ICC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey GroupsGnusocialNet
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://gnusocial.net/doc/groups","accessDate":"2019-02-18T12:19:38Z","title":"Groups - gnusocial.net","creators":[],"tags":["related work"],"relations":[],"dateAdded":"2019-02-18T12:19:38Z","dateModified":"2019-02-18T12:31:52Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/RX2F7ICC","attachments":[{"itemType":"attachment","title":"Groups - gnusocial.net - https://gnusocial.net/","tags":[],"relations":[],"dateAdded":"2019-02-18T12:19:38Z","dateModified":"2019-02-18T12:19:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/7KAHMLU6"}],"notes":[],"itemID":403,"citekey":"GroupsGnusocialNet"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":406,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":407,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key L29UJ7RC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey PleromaRelay
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://git.pleroma.social/pleroma/relay","accessDate":"2019-02-18T13:13:36Z","language":"en","abstractNote":"Generic LitePub relay (works with all LitePub consumers and Mastodon)","title":"Pleroma / relay","creators":[],"tags":["relay","related work"],"relations":[],"dateAdded":"2019-02-18T13:13:36Z","dateModified":"2019-02-18T13:18:42Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/L29UJ7RC","attachments":[{"itemType":"attachment","title":"Snapshot","tags":[],"relations":[],"dateAdded":"2019-02-18T13:13:39Z","dateModified":"2019-02-18T13:13:39Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/HA4C3UZA"}],"notes":[],"itemID":406,"citekey":"PleromaRelay","publicationTitle":"GitLab"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":409,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":408,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key UE9PJEHS
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey urdanetaSurveyDHTSecurity2011
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"journalArticle","url":"http://portal.acm.org/citation.cfm?doid=1883612.1883615","volume":"43","issue":"2","pages":"1-49","publicationTitle":"ACM Computing Surveys","ISSN":"03600300","date":"2011-01-01","DOI":"10.1145/1883612.1883615","accessDate":"2019-02-18T16:16:22Z","libraryCatalog":"Crossref","language":"en","title":"A survey of DHT security techniques","creators":[{"firstName":"Guido","lastName":"Urdaneta","creatorType":"author"},{"firstName":"Guillaume","lastName":"Pierre","creatorType":"author"},{"firstName":"Maarten Van","lastName":"Steen","creatorType":"author"}],"tags":["security","unread","DHT","Kademlia","Pastry","Chord","survey"],"relations":[],"dateAdded":"2019-02-18T16:16:22Z","dateModified":"2019-03-22T17:08:07Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/UE9PJEHS","attachments":[{"itemType":"attachment","title":"Urdaneta et al. - 2011 - A survey of DHT security techniques.pdf","tags":[],"relations":[],"dateAdded":"2019-02-18T16:16:19Z","dateModified":"2019-02-18T16:16:22Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/8NLLR9TH"}],"notes":["<ul>\n<li>crucial aspect: robust and secure assignment of node identifiers to keep fraction of malicious nodes small and prevent nodes from choosing their location\n<ul>\n<li>to prevent Sybil and Eclipse attacks</li>\n</ul>\n</li>\n<li>main 2 problems:\n<ul>\n<li>creating malicious nodes</li>\n<li>isolating benign nodes from each other</li>\n</ul>\n</li>\n<li>for scalability: small number of links to peers compared to total number of nodes</li>\n<li>Sybil attack: create many maliciouds nodes\n<ul>\n<li>breaks the pre-assumption of defenses that malocious nodes are a minority</li>\n<li>example for single attacker with many IPs: botnet</li>\n<li>3.6 Danezis et al.: interesting approach to assume that malicious nodes are preferredly adde throug other malicious nodes, then prefer diverse, infrequently used paths; problem: assumes social relationships between nodes</li>\n<li>3.9: computational puzzles have to be solved periodically, problems: difficulty level that fits all nodes, power consumption</li>\n</ul>\n</li>\n<li>Eclipse attack: try to control sufficient fraction of neighbouring nodes to poison the routing table of a node and isolate it\n<ul>\n<li>can be utilized for routing and storing attacks</li>\n<li>defense is successful, if malicious nodes cannot concentrate in the neighbourhood (fraction is similarly high as in whol network)</li>\n<li>Castro: use 2 routing tables: one optimized one (with proximity information) + 1 verified one for fallback</li>\n<li><strong>Chord:</strong> constrains identifiers of nodes usable in routing tables, works with random &amp; stable nodeIDs if attackers are spread over DHT</li>\n</ul>\n</li>\n<li>routing attacks: refuse to forward or forward to wrong node (maybe even DoS an unrelated server)\n<ul>\n<li>prefer iterative routing, as this can be checked better</li>\n<li>assign nodeIDs in verifiable, hard to force way</li>\n<li>identities with public keys</li>\n</ul>\n</li>\n<li>storage attacks: bogus responses/ deny existence\n<ul>\n<li>redundancy/ replication: consult at least 2 replicas</li>\n<li>try to make data self-certifying: only consult redundant nodes if integrity check fails</li>\n<li>5.4 Sanchez: divide Chord finger table into multiple rings that are routed independently</li>\n<li>5.6 Harvesf and Blough: place replicas at equally-spaced locations on Chord ring, for more diverse routes to them</li>\n<li>normal Chord stores replicas at numerically close nodes</li>\n<li>data redundancy is not enough, if nodes can choose their own position in key space</li>\n<li>redundant routing for reliable locateability of keys</li>\n</ul>\n</li>\n</ul>"],"itemID":409,"citekey":"urdanetaSurveyDHTSecurity2011"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":411,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":412,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete document version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document key I2QR4HDG
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document citationKey lemmerwebberActivityPubW3CRecommendation2018
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete document libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"document","url":"https://www.w3.org/TR/2018/REC-activitypub-20180123/","publisher":"W3C","date":"23 Jan 2018","accessDate":"2019-03-02T17:11:19Z","language":"English","abstractNote":"The ActivityPub protocol is a decentralized social networking protocol based upon the [ActivityStreams] 2.0 data format. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content.","title":"ActivityPub - W3C Recommendation 23 January 2018","creators":[{"firstName":"Christopher","lastName":"Lemmer Webber","creatorType":"author"},{"firstName":"Jessica","lastName":"Tallon","creatorType":"author"},{"firstName":"Erin","lastName":"Shepherd","creatorType":"author"},{"firstName":"Amy","lastName":"Guy","creatorType":"author"},{"firstName":"Evan","lastName":"Prodromou","creatorType":"author"}],"tags":[],"relations":[],"dateAdded":"2019-03-02T17:11:19Z","dateModified":"2019-03-02T17:16:02Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/I2QR4HDG","attachments":[{"itemType":"attachment","title":"ActivityPub - https://www.w3.org/","tags":[],"relations":[],"dateAdded":"2019-03-02T17:11:21Z","dateModified":"2019-03-02T17:11:21Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/CYAKSDHL"}],"notes":[],"itemID":411,"citekey":"lemmerwebberActivityPubW3CRecommendation2018"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":413,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":414,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key JV4GXH7Y
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey twitterinc.Twitter2019
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://twitter.com/","date":"02.03.2019","accessDate":"2019-03-02T17:38:52Z","title":"Twitter","creators":[{"name":"Twitter Inc.","creatorType":"author"}],"tags":[],"relations":[],"dateAdded":"2019-03-02T17:38:52Z","dateModified":"2019-03-02T17:41:24Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/JV4GXH7Y","attachments":[{"itemType":"attachment","title":"Twitter. Alles, was gerade los ist. - https://twitter.com/","tags":[],"relations":[],"dateAdded":"2019-03-02T17:38:53Z","dateModified":"2019-03-02T17:38:53Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/9EDJTRHC"}],"notes":[],"itemID":413,"citekey":"twitterinc.Twitter2019","publicationTitle":"Twitter","type":"Social Network"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":417,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":416,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete report version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report key V2TIM2NJ
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report citationKey RFC2119
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete report libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"report","url":"http://www.rfc-editor.org/rfc/rfc2119.txt","date":"March 1997","extra":"http://www.rfc-editor.org/rfc/rfc2119.txt \nCitation Key: RFC2119 \nbibtex*[howpublished=Internet Requests for Comments] \nISSN: 2070-1721","title":"Key words for use in RFCs to Indicate Requirement Levels","creators":[{"firstName":"Scott","lastName":"Bradner","creatorType":"author"}],"tags":["RFC","meta"],"relations":[],"dateAdded":"2019-03-04T21:22:39Z","dateModified":"2019-03-04T21:23:05Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/V2TIM2NJ","attachments":[{"itemType":"attachment","title":"- https://www.ietf.org/","tags":[],"relations":[],"dateAdded":"2019-03-04T21:21:37Z","dateModified":"2019-03-04T21:22:48Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/77ETI3DG"}],"notes":[],"itemID":417,"citekey":"RFC2119","number":"14","publisher":"RFC Editor / RFC Editor","type":"BCP"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":419,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":420,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key LNWIRMAR
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey DBLP:conf/iptps/ByersCM03
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","pages":"80-87","date":"2003","extra":"Citation Key: DBLP:conf/iptps/ByersCM03 \nbibtex*{ee:'http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2735&spage=80',crossref:'DBLP:conf/iptps/2003',bibsource:'DBLP, http://dblp.uni-trier.de'}","title":"Simple Load Balancing for Distributed Hash Tables.","creators":[{"firstName":"John W.","lastName":"Byers","creatorType":"author"},{"firstName":"Jeffrey","lastName":"Considine","creatorType":"author"},{"firstName":"Michael","lastName":"Mitzenmacher","creatorType":"author"}],"tags":["load balancing"],"relations":[],"dateAdded":"2019-03-14T12:16:17Z","dateModified":"2019-04-05T09:41:46Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/LNWIRMAR","attachments":[{"itemType":"attachment","title":"simple_load_balancing.ps","tags":[],"relations":[],"dateAdded":"2019-03-14T12:16:32Z","dateModified":"2019-03-14T12:16:32Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/FY37N94A"}],"notes":["<ul>\n<li>only deals with balancing differently-sized arcs of the key space with equally-sized items\n<ul>\n<li>this is not the problem here, as different hashtags will have different loads =&gt; different items with different sizes/ loads</li>\n</ul>\n</li>\n</ul>"],"itemID":419,"citekey":"DBLP:conf/iptps/ByersCM03","publicationTitle":"IPTPS"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":422,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":421,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete bookSection version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection key NJ58AXHC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection citationKey raoLoadBalancingStructured2003
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"bookSection","url":"http://link.springer.com/10.1007/978-3-540-45172-3_6","volume":"2735","place":"Berlin, Heidelberg","publisher":"Springer Berlin Heidelberg","pages":"68-79","ISBN":"978-3-540-40724-9 978-3-540-45172-3","date":"2003","extra":"DOI: 10.1007/978-3-540-45172-3_6","accessDate":"2019-03-14T12:19:44Z","libraryCatalog":"Crossref","language":"en","abstractNote":"Most P2P systems that provide a DHT abstraction distribute objects among “peer nodes” by choosing random identifiers for the objects. This could result in an O(log N) imbalance. Besides, P2P systems can be highly heterogeneous, i.e. they may consist of peers that range from old desktops behind modem lines to powerful servers connected to the Internet through high-bandwidth lines. In this paper, we address the problem of load balancing in such P2P systems.","title":"Load Balancing in Structured P2P Systems","creators":[{"firstName":"Gerhard","lastName":"Goos","creatorType":"seriesEditor"},{"firstName":"Juris","lastName":"Hartmanis","creatorType":"seriesEditor"},{"firstName":"Jan","lastName":"van Leeuwen","creatorType":"seriesEditor"},{"firstName":"M. Frans","lastName":"Kaashoek","creatorType":"editor"},{"firstName":"Ion","lastName":"Stoica","creatorType":"editor"},{"firstName":"Ananth","lastName":"Rao","creatorType":"author"},{"firstName":"Karthik","lastName":"Lakshminarayanan","creatorType":"author"},{"firstName":"Sonesh","lastName":"Surana","creatorType":"author"},{"firstName":"Richard","lastName":"Karp","creatorType":"author"},{"firstName":"Ion","lastName":"Stoica","creatorType":"author"}],"tags":["load balancing"],"relations":[],"dateAdded":"2019-03-14T12:19:44Z","dateModified":"2019-04-04T15:36:19Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/NJ58AXHC","attachments":[{"itemType":"attachment","title":"Rao et al. - 2003 - Load Balancing in Structured P2P Systems.pdf","tags":[],"relations":[],"dateAdded":"2019-03-14T12:19:41Z","dateModified":"2019-03-14T12:19:45Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/975MJEHQ"}],"notes":["<ul>\n<li>uses virtual servers</li>\n<li>but these virtual servers are moved around arbitrarily with no precautions against sybil or node-id attacks</li>\n</ul>"],"itemID":422,"citekey":"raoLoadBalancingStructured2003","publicationTitle":"Peer-to-Peer Systems II"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":423,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +4} serializer cache miss: {"itemID":425,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":424,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key PI38JNHE
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey riecheThermaldissipationbasedApproachBalancing2004
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","pages":"15-23","date":"November 2004","DOI":"10.1109/LCN.2004.10","libraryCatalog":"IEEE Xplore","conferenceName":"29th Annual IEEE International Conference on Local Computer Networks","abstractNote":"A major objective of peer-to-peer (P2P) systems is the management of large amounts of data distributed across many systems. Distributed hash tables (DHT) are designed for highly scalable, self-organizing, and efficient distribution and lookup of data, whereby data is stored globally persistent. The range of values of the corresponding hash function is partitioned and each interval is assigned to a node of the DHT. Because the assignment of data to nodes is based on hash functions, one assumes that the respective data load is distributed evenly across all participating nodes. However most DHT show difficulties with load balancing as we demonstrate in this paper. As a solution for this problem, we present a new and very simple approach for balancing stored data between peers in a fashion analogous to the dissipation of heat energy in materials. We compare this algorithm with other approaches for load balancing and present results based on simulations and a prototype implementation. This new algorithm improves the distribution of load in DHT without requiring major changes of the DHT themselves. In addition, we show that the fault tolerance of peer-to-peer systems is increased by the proposed algorithm.","title":"A thermal-dissipation-based approach for balancing data load in distributed hash tables","creators":[{"firstName":"S.","lastName":"Rieche","creatorType":"author"},{"firstName":"L.","lastName":"Petrak","creatorType":"author"},{"firstName":"K.","lastName":"Wehrle","creatorType":"author"}],"tags":["unread","Peer to peer computing","fault tolerant computing","load balancing","client-server systems","Data engineering","data load balancing","distributed databases","distributed hash tables","Engineering management","fault tolerance","hash function","Load management","P2P systems","peer-to-peer systems","Protocols","resource allocation","storage management","Systems engineering and theory","table lookup","Thermal engineering","Thermal loading","Thermal management","thermal-dissipation-based approach","Virtual prototyping"],"relations":[],"dateAdded":"2019-03-14T13:56:30Z","dateModified":"2019-03-14T13:56:53Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/PI38JNHE","attachments":[{"itemType":"attachment","title":"Eingereichte Version","tags":[],"relations":[],"dateAdded":"2019-03-14T13:56:39Z","dateModified":"2019-03-14T13:56:39Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/QNDRCXA3"},{"itemType":"attachment","title":"IEEE Xplore Abstract Record","tags":[],"relations":[],"dateAdded":"2019-03-14T13:56:32Z","dateModified":"2019-03-14T13:56:32Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ZH3HTFFV"}],"notes":[],"itemID":423,"citekey":"riecheThermaldissipationbasedApproachBalancing2004","publicationTitle":"29th Annual IEEE International Conference on Local Computer Networks"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":427,"legacy":false,"skipChildItems":false}
(3)(+0000004): {better-bibtex +4} serializer cache miss: {"itemID":426,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key CJZ3W9V4
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey kargerSimpleEfficientLoad
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"journalArticle","libraryCatalog":"Zotero","language":"en","abstractNote":"Load balancing is a critical issue for the efficient operation of peer-to-peer networks. We give two new loadbalancing protocols whose provable performance guarantees are within a constant factor of optimal. Our protocols refine the consistent hashing data structure that underlies the Chord (and Koorde) P2P network. Both preserve Chord’s logarithmic query time and near-optimal data migration cost.","title":"Simple Efficient Load Balancing Algorithms for Peer-to-Peer Systems","creators":[{"firstName":"David R","lastName":"Karger","creatorType":"author"},{"firstName":"Matthias","lastName":"Ruhl","creatorType":"author"}],"tags":["unread","load balancing"],"relations":[],"dateAdded":"2019-03-14T13:58:13Z","dateModified":"2019-05-02T14:30:26Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/CJZ3W9V4","attachments":[{"itemType":"attachment","title":"Karger und Ruhl - Simple Efficient Load Balancing Algorithms for Pee.pdf","tags":[],"relations":[],"dateAdded":"2019-03-14T13:58:10Z","dateModified":"2019-03-14T13:58:13Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/ZHQLC38W"}],"notes":["<ul>\n<li>virtual servers, but only one of them active per node at each point of time</li>\n<li>As int he original Chord protocol, our scheme gives each real node only a small number of “legitimate” addresses on the Chord ring, preserving Chord’s (limited) protection against address spoofing by malicious nodes trying to disrupt the routing layer.</li>\n<li>but for item balancing (which is needed) nodes can again migrate to arbitrary IDs :(</li>\n</ul>"],"itemID":427,"citekey":"kargerSimpleEfficientLoad"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":429,"legacy":false,"skipChildItems":false}
(3)(+0000006): {better-bibtex +6} serializer cache miss: {"itemID":431,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":430,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key NURL26AE
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey stoicaChordScalablePeertopeer2003
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000002): {BetterBibTeX JSON +2} adding item {"itemType":"journalArticle","volume":"11","issue":"1","pages":"17-32","publicationTitle":"IEEE/ACM Transactions on Networking","ISSN":"1063-6692","date":"February 2003","DOI":"10.1109/TNET.2002.808407","libraryCatalog":"IEEE Xplore","abstractNote":"A fundamental problem that confronts peer-to-peer applications is the efficient location of the node that stores a desired data item. This paper presents Chord, a distributed lookup protocol that addresses this problem. Chord provides support for just one operation: given a key, it maps the key onto a node. Data location can be easily implemented on top of Chord by associating a key with each data item, and storing the key/data pair at the node to which the key maps. Chord adapts efficiently as nodes join and leave the system, and can answer queries even if the system is continuously changing. Results from theoretical analysis and simulations show that Chord is scalable: Communication cost and the state maintained by each node scale logarithmically with the number of Chord nodes.","title":"Chord: a scalable peer-to-peer lookup protocol for Internet applications","shortTitle":"Chord","creators":[{"firstName":"I.","lastName":"Stoica","creatorType":"author"},{"firstName":"R.","lastName":"Morris","creatorType":"author"},{"firstName":"D.","lastName":"Liben-Nowell","creatorType":"author"},{"firstName":"D. R.","lastName":"Karger","creatorType":"author"},{"firstName":"M. F.","lastName":"Kaashoek","creatorType":"author"},{"firstName":"F.","lastName":"Dabek","creatorType":"author"},{"firstName":"H.","lastName":"Balakrishnan","creatorType":"author"}],"tags":["Internet","unread","Application software","DHT","file organisation","Peer to peer computing","Routing","Computer science","Chord","Protocols","table lookup","Analytical models","Centralized control","Chord routing protocol","consistent hashing","Costs","data location","distributed protocol","Internet applications","lookup protocol","Network servers","peer-to-peer applications","protocols","routing protocols"],"relations":[],"dateAdded":"2019-03-18T14:44:37Z","dateModified":"2019-03-18T14:53:32Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/NURL26AE","attachments":[{"itemType":"attachment","title":"Eingereichte Version","tags":[],"relations":[],"dateAdded":"2019-03-18T14:44:53Z","dateModified":"2019-03-18T14:44:53Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/4HG3R5ZT"},{"itemType":"attachment","title":"IEEE Xplore Abstract Record","tags":[],"relations":[],"dateAdded":"2019-03-18T14:44:43Z","dateModified":"2019-03-18T14:44:43Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/769BWPJT"}],"notes":["<ul>\n<li>just one operation: mapping a key to a node</li>\n<li>assumption load balancing: due to consisten randomized hashing, each node gets roughly the same number of keys\n<ul>\n<li>not relevant for this project, as key get different amounts of load</li>\n</ul>\n</li>\n<li>steady state: O(log N) known routing entries, O(log N) messages for routing</li>\n<li>Pastry and Tapestry take network topology into account, but are more complex eg. regarding joins</li>\n<li>correctness robust against partially wrong routing information</li>\n<li>lookup(key) returns IP address od responsible node -&gt; reverse-DNS record?</li>\n<li>successkor(key): first node with ID&gt;= key</li>\n<li>routing (finger) table with up to len(ID) entries – but only log(n) of them differ -&gt; optimized storage possible<br />\n<ul>\n<li>i-th entry is first node that succeeds n by at least 2^{i-1} mod 2^m</li>\n<li>first finger = successor</li>\n</ul>\n</li>\n<li>stabilization protocol: run periodically in background\n<ul>\n<li>join() alone does not notify rest of network</li>\n<li>stabilize asks successor for its predecessor and informs successor about existence</li>\n</ul>\n</li>\n<li>fix_fingers(): periodically run\n<ul>\n<li>initialises finger table</li>\n<li>also updates finger table with new nodes</li>\n</ul>\n</li>\n<li>check_predecessor(): run periodically to get rid of failed predecessor</li>\n<li>n.notify(n'): n is notified by n' that it thinks to be its predecessor</li>\n<li>if successor not yet correct or keys haven't migrated: temporary failure, needs to be handled by application layer</li>\n<li>for robustness: not 1 successor, but list of r next sucessors</li>\n<li>as Chord keeps track of {r}, these nodes can be used for redundant storage</li>\n<li>stabilize: update immediate successor + 1 other entry from successor list or finger table</li>\n<li>latency optimization: maintain list of fingers + their successors, choose the geographically/ latency closest one\n<ul>\n<li>needs recursive querying because nodes themselves have the latency information only locally</li>\n</ul>\n</li>\n</ul>"],"itemID":429,"citekey":"stoicaChordScalablePeertopeer2003"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":433,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":432,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete bookSection version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection key P6XGVMV4
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection citationKey maymounkovKademliaPeertoPeerInformation2002
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"bookSection","url":"http://link.springer.com/10.1007/3-540-45748-8_5","volume":"2429","place":"Berlin, Heidelberg","publisher":"Springer Berlin Heidelberg","pages":"53-65","ISBN":"978-3-540-44179-3 978-3-540-45748-0","date":"2002","extra":"DOI: 10.1007/3-540-45748-8_5","accessDate":"2019-03-18T14:53:09Z","libraryCatalog":"Crossref","language":"en","abstractNote":"We describe a peer-to-peer distributed hash table with provable consistency and performance in a fault-prone environment. Our system routes queries and locates nodes using a novel XOR-based metric topology that simplifies the algorithm and facilitates our proof. The topology has the property that every message exchanged conveys or reinforces useful contact information. The system exploits this information to send parallel, asynchronous query messages that tolerate node failures without imposing timeout delays on users.","title":"Kademlia: A Peer-to-Peer Information System Based on the XOR Metric","shortTitle":"Kademlia","creators":[{"firstName":"Gerhard","lastName":"Goos","creatorType":"seriesEditor"},{"firstName":"Juris","lastName":"Hartmanis","creatorType":"seriesEditor"},{"firstName":"Jan","lastName":"van Leeuwen","creatorType":"seriesEditor"},{"firstName":"Peter","lastName":"Druschel","creatorType":"editor"},{"firstName":"Frans","lastName":"Kaashoek","creatorType":"editor"},{"firstName":"Antony","lastName":"Rowstron","creatorType":"editor"},{"firstName":"Petar","lastName":"Maymounkov","creatorType":"author"},{"firstName":"David","lastName":"Mazières","creatorType":"author"}],"tags":["unread","DHT","Kademlia"],"relations":[],"dateAdded":"2019-03-18T14:53:09Z","dateModified":"2019-03-18T14:53:24Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/P6XGVMV4","attachments":[{"itemType":"attachment","title":"Maymounkov und Mazières - 2002 - Kademlia A Peer-to-Peer Information System Based .pdf","tags":[],"relations":[],"dateAdded":"2019-03-18T14:53:06Z","dateModified":"2019-03-18T14:53:09Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/TDFCQ2R5"}],"notes":[],"itemID":433,"citekey":"maymounkovKademliaPeertoPeerInformation2002","publicationTitle":"Peer-to-Peer Systems"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":436,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":435,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection key 6MIMFETI
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection citationKey stevensFirstCollisionFull2017
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete bookSection journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"bookSection","url":"http://link.springer.com/10.1007/978-3-319-63688-7_19","volume":"10401","place":"Cham","publisher":"Springer International Publishing","pages":"570-596","ISBN":"978-3-319-63687-0 978-3-319-63688-7","date":"2017","extra":"DOI: 10.1007/978-3-319-63688-7_19","accessDate":"2019-03-21T15:51:38Z","libraryCatalog":"Crossref","language":"en","abstractNote":"SHA-1 is a widely used 1995 NIST cryptographic hash function standard that was officially deprecated by NIST in 2011 due to fundamental security weaknesses demonstrated in various analyses and theoretical attacks.","title":"The First Collision for Full SHA-1","creators":[{"firstName":"Jonathan","lastName":"Katz","creatorType":"editor"},{"firstName":"Hovav","lastName":"Shacham","creatorType":"editor"},{"firstName":"Marc","lastName":"Stevens","creatorType":"author"},{"firstName":"Elie","lastName":"Bursztein","creatorType":"author"},{"firstName":"Pierre","lastName":"Karpman","creatorType":"author"},{"firstName":"Ange","lastName":"Albertini","creatorType":"author"},{"firstName":"Yarik","lastName":"Markov","creatorType":"author"}],"tags":[],"relations":[],"dateAdded":"2019-03-21T15:51:38Z","dateModified":"2019-03-21T15:51:38Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/6MIMFETI","attachments":[{"itemType":"attachment","title":"Stevens et al. - 2017 - The First Collision for Full SHA-1.pdf","tags":[],"relations":[],"dateAdded":"2019-03-21T15:51:35Z","dateModified":"2019-03-21T15:51:39Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/JJ5WHI94"}],"notes":[],"itemID":436,"citekey":"stevensFirstCollisionFull2017","publicationTitle":"Advances in Cryptology – CRYPTO 2017"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":437,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":438,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key TGVLBIU3
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage citationKey NodeInfoSpecification
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"http://nodeinfo.diaspora.software/","accessDate":"2019-03-22T12:06:39Z","title":"NodeInfo specification","creators":[],"tags":[],"relations":[],"dateAdded":"2019-03-22T12:06:39Z","dateModified":"2019-03-22T12:11:50Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/TGVLBIU3","attachments":[{"itemType":"attachment","title":"NodeInfo - http://nodeinfo.diaspora.software/","tags":[],"relations":[],"dateAdded":"2019-03-22T12:06:40Z","dateModified":"2019-03-22T12:06:40Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/FCWSIM89"}],"notes":[],"itemID":437,"citekey":"NodeInfoSpecification"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":439,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":440,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key WRILWH53
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey IPv6GlobalUnicast
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml","accessDate":"2019-03-22T14:52:22Z","title":"IPv6 Global Unicast Address Assignments - https://www.iana.org/","creators":[],"tags":[],"relations":[],"dateAdded":"2019-03-22T14:52:22Z","dateModified":"2019-03-22T14:52:22Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/WRILWH53","attachments":[{"itemType":"attachment","title":"IPv6 Global Unicast Address Assignments - https://www.iana.org/","tags":[],"relations":[],"dateAdded":"2019-03-22T14:52:24Z","dateModified":"2019-03-22T14:52:24Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/K92CLIKY"}],"notes":[],"itemID":439,"citekey":"IPv6GlobalUnicast"}
(3)(+0000002): {better-bibtex +0} serializer cache miss: {"itemID":443,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +2} serializer cache miss: {"itemID":442,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key QJ9R7VFZ
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey zhuEfficientProximityawareLoad2005
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"journalArticle","url":"http://ieeexplore.ieee.org/document/1401878/","volume":"16","issue":"4","pages":"349-361","publicationTitle":"IEEE Transactions on Parallel and Distributed Systems","ISSN":"1045-9219","date":"04/2005","DOI":"10.1109/TPDS.2005.46","accessDate":"2019-03-22T16:14:35Z","libraryCatalog":"Crossref","language":"en","abstractNote":"Many solutions have been proposed to tackle the load balancing issue in DHT-based P2P systems. However, all these solutions either ignore the heterogeneity nature of the system, or reassign loads among nodes without considering proximity relationships, or both. In this paper, we present an efficient, proximity-aware load balancing scheme by using the concept of virtual servers. To the best of our knowledge, this is the first work to use proximity information in load balancing. In particular, our main contributions are: 1) Relying on a self-organized, fully distributed k-ary tree structure constructed on top of a DHT, load balance is achieved by aligning those two skews in load distribution and node capacity inherent in P2P systems—that is, have higher capacity nodes carry more loads; 2) proximity information is used to guide virtual server reassignments such that virtual servers are reassigned and transferred between physically close heavily loaded nodes and lightly loaded nodes, thereby minimizing the load movement cost and allowing load balancing to perform efficiently; and 3) our simulations show that our proximity-aware load balancing scheme reduces the load movement cost by 11-65 percent for all the combinations of two representative network topologies, two node capacity profiles, and two load distributions of virtual servers. Moreover, we achieve virtual server reassignments in Oðlog NÞ time.","title":"Efficient, proximity-aware load balancing for DHT-based P2P systems","creators":[{"firstName":"Y.","lastName":"Zhu","creatorType":"author"},{"firstName":"Y.","lastName":"Hu","creatorType":"author"}],"tags":["load balancing","survey"],"relations":[],"dateAdded":"2019-03-22T16:14:35Z","dateModified":"2019-04-04T15:36:07Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/QJ9R7VFZ","attachments":[{"itemType":"attachment","title":"Zhu und Hu - 2005 - Efficient, proximity-aware load balancing for DHT-.pdf","tags":[],"relations":[],"dateAdded":"2019-03-22T16:14:33Z","dateModified":"2019-03-22T16:14:37Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/M4WDG39V"}],"notes":["<p>survey section sieht lesenswert aus</p>\n<p> </p>\n<ul>\n<li>also moves virtual servers without any security measures</li>\n</ul>"],"itemID":443,"citekey":"zhuEfficientProximityawareLoad2005"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":446,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":445,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key 8TRTYR5Z
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey godfreyLoadBalancingDynamic2004
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","url":"http://ieeexplore.ieee.org/document/1354648/","volume":"4","place":"Hong Kong, China","publisher":"IEEE","pages":"2253-2262","ISBN":"978-0-7803-8355-5","date":"2004","DOI":"10.1109/INFCOM.2004.1354648","accessDate":"2019-03-22T16:17:10Z","libraryCatalog":"Crossref","conferenceName":"IEEE INFOCOM 2004","language":"en","abstractNote":"Most P2P systems that provide a DHT abstraction distribute objects randomly among “peer nodes” in a way that results in some nodes having Θ(log N ) times as many objects as the average node. Further imbalance may result due to nonuniform distribution of objects in the identifier space and a high degree of heterogeneity in object loads and node capacities. Additionally, a node’s load may vary greatly over time since the system can be expected to experience continuous insertions and deletions of objects, skewed object arrival patterns, and continuous arrival and departure of nodes.","title":"Load balancing in dynamic structured P2P systems","creators":[{"firstName":"B.","lastName":"Godfrey","creatorType":"author"},{"firstName":"K.","lastName":"Lakshminarayanan","creatorType":"author"},{"firstName":"S.","lastName":"Surana","creatorType":"author"},{"firstName":"R.","lastName":"Karp","creatorType":"author"},{"firstName":"I.","lastName":"Stoica","creatorType":"author"}],"tags":["load balancing"],"relations":[],"dateAdded":"2019-03-22T16:17:10Z","dateModified":"2019-04-04T15:36:14Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/8TRTYR5Z","attachments":[{"itemType":"attachment","title":"Godfrey et al. - 2004 - Load balancing in dynamic structured P2P systems.pdf","tags":[],"relations":[],"dateAdded":"2019-03-22T16:17:07Z","dateModified":"2019-03-22T16:17:10Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/45P3SZFG"}],"notes":["<p>uses the concept of virtual servers</p>\n<p>differentiates between bandwith and storage</p>\n<ul>\n<li>assumes only 1 bottle-neck resource, multi-resource balancing left for future work</li>\n<li>movement cost</li>\n<li>proposes transfering virtual servers – but how???</li>\n</ul>"],"itemID":446,"citekey":"godfreyLoadBalancingDynamic2004","publicationTitle":"IEEE INFOCOM 2004"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":449,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":448,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete bookSection version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection key SV42BFRC
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection citationKey yuLeopardLocalityAware2005
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete bookSection libraryID 1
(3)(+0000002): {BetterBibTeX JSON +0} adding item {"itemType":"bookSection","url":"http://link.springer.com/10.1007/11422778_3","volume":"3462","place":"Berlin, Heidelberg","publisher":"Springer Berlin Heidelberg","pages":"27-39","ISBN":"978-3-540-25809-4 978-3-540-32017-3","date":"2005","extra":"DOI: 10.1007/11422778_3","accessDate":"2019-03-22T16:59:06Z","libraryCatalog":"Crossref","language":"en","abstractNote":"Recent research [7, 12, 2] has shown that Internet hosts can be efficiently (i.e., without excessive measurements) mapped to a virtual (Euclidean) coordinate system, where the geometric distance between any two nodes in this virtual space approximates their real IP network distance (latency). Based on this result, in this paper, we propose an alternative approach that inherently incorporates a virtual coordinate system into a P2P network. In our system, called Leopard, a node is assigned a coordinate in the so-called node geo space as it joins the network, and obtains neighbor relationships that reflects network proximity from the beginning. The object id space and the node geo space are then “weaved” together via a novel technique called geographically-scoped hashing. Through analysis and simulation, we show three major desirable properties of Leopard to exemplify the power of this paradigm shift: i) a constant routing stretch, i.e., IP level network latency of object look-up is proportional to the distance between a requesting node and the target object; ii) always locates a near-by copy when multiple copies exist; and iii) effectively handles “flash crowd” traffic with near optimal load balancing.","title":"Leopard: A Locality Aware Peer-to-Peer System with No Hot Spot","shortTitle":"Leopard","creators":[{"firstName":"David","lastName":"Hutchison","creatorType":"seriesEditor"},{"firstName":"Takeo","lastName":"Kanade","creatorType":"seriesEditor"},{"firstName":"Josef","lastName":"Kittler","creatorType":"seriesEditor"},{"firstName":"Jon M.","lastName":"Kleinberg","creatorType":"seriesEditor"},{"firstName":"Friedemann","lastName":"Mattern","creatorType":"seriesEditor"},{"firstName":"John C.","lastName":"Mitchell","creatorType":"seriesEditor"},{"firstName":"Moni","lastName":"Naor","creatorType":"seriesEditor"},{"firstName":"Oscar","lastName":"Nierstrasz","creatorType":"seriesEditor"},{"firstName":"C.","lastName":"Pandu Rangan","creatorType":"seriesEditor"},{"firstName":"Bernhard","lastName":"Steffen","creatorType":"seriesEditor"},{"firstName":"Madhu","lastName":"Sudan","creatorType":"seriesEditor"},{"firstName":"Demetri","lastName":"Terzopoulos","creatorType":"seriesEditor"},{"firstName":"Dough","lastName":"Tygar","creatorType":"seriesEditor"},{"firstName":"Moshe Y.","lastName":"Vardi","creatorType":"seriesEditor"},{"firstName":"Gerhard","lastName":"Weikum","creatorType":"seriesEditor"},{"firstName":"Raouf","lastName":"Boutaba","creatorType":"editor"},{"firstName":"Kevin","lastName":"Almeroth","creatorType":"editor"},{"firstName":"Ramon","lastName":"Puigjaner","creatorType":"editor"},{"firstName":"Sherman","lastName":"Shen","creatorType":"editor"},{"firstName":"James P.","lastName":"Black","creatorType":"editor"},{"firstName":"Yinzhe","lastName":"Yu","creatorType":"author"},{"firstName":"Sanghwan","lastName":"Lee","creatorType":"author"},{"firstName":"Zhi-Li","lastName":"Zhang","creatorType":"author"}],"tags":["unread","load balancing","flash crowd","proximity-aware","geographically-scoped hashing"],"relations":[],"dateAdded":"2019-03-22T16:59:06Z","dateModified":"2019-03-22T16:59:55Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/SV42BFRC","attachments":[{"itemType":"attachment","title":"Yu et al. - 2005 - Leopard A Locality Aware Peer-to-Peer System with.pdf","tags":[],"relations":[],"dateAdded":"2019-03-22T16:59:01Z","dateModified":"2019-03-22T16:59:10Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/FAASRFHH"}],"notes":[],"itemID":449,"citekey":"yuLeopardLocalityAware2005","publicationTitle":"NETWORKING 2005. Networking Technologies, Services, and Protocols; Performance of Computer and Communication Networks; Mobile and Wireless Communications Systems"}
(3)(+0000000): {better-bibtex +2} serializer cache miss: {"itemID":451,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":452,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete webpage version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage key NKHT4LSW
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage citationKey prodromouTagsPubHome2017
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete webpage libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"webpage","url":"https://web.archive.org/web/20171220163330/https://tags.pub/","date":"2017-12-20","accessDate":"2019-03-25T15:38:56Z","title":"tags.pub - Home (Archived)","shortTitle":"tags.pub - Home (Archived)","creators":[{"firstName":"Evan","lastName":"Prodromou","creatorType":"author"}],"tags":["ActivityPub","hashtags"],"relations":[],"dateAdded":"2019-03-25T15:38:56Z","dateModified":"2019-03-25T16:37:20Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/NKHT4LSW","attachments":[{"itemType":"attachment","title":"tags.pub - Home - https://web.archive.org/","tags":[],"relations":[],"dateAdded":"2019-03-25T15:39:03Z","dateModified":"2019-03-25T15:39:03Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/WTRRJ6RY"}],"notes":[],"itemID":451,"citekey":"prodromouTagsPubHome2017"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":454,"legacy":false,"skipChildItems":false}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":457,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":456,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete journalArticle version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle key MKKZ9W2D
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle citationKey dabekWideareaCooperativeStorage
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete journalArticle libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"journalArticle","pages":"14","libraryCatalog":"Zotero","language":"en","abstractNote":"The Cooperative File System (CFS) is a new peer-to-peer readonly storage system that provides provable guarantees for the efficiency, robustness, and load-balance of file storage and retrieval. CFS does this with a completely decentralized architecture that can scale to large systems. CFS servers provide a distributed hash table (DHash) for block storage. CFS clients interpret DHash blocks as a file system. DHash distributes and caches blocks at a fine granularity to achieve load balance, uses replication for robustness, and decreases latency with server selection. DHash finds blocks using the Chord location protocol, which operates in time logarithmic in the number of servers.","title":"Wide-area cooperative storage with CFS","creators":[{"firstName":"Frank","lastName":"Dabek","creatorType":"author"},{"firstName":"M Frans","lastName":"Kaashoek","creatorType":"author"},{"firstName":"David","lastName":"Karger","creatorType":"author"},{"firstName":"Robert","lastName":"Morris","creatorType":"author"},{"firstName":"Ion","lastName":"Stoica","creatorType":"author"}],"tags":["Chord","load balancing"],"relations":[],"dateAdded":"2019-04-04T14:22:10Z","dateModified":"2019-04-04T14:23:14Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/MKKZ9W2D","attachments":[{"itemType":"attachment","title":"Dabek et al. - Wide-area cooperative storage with CFS.pdf","tags":[],"relations":[],"dateAdded":"2019-04-04T14:22:08Z","dateModified":"2019-04-04T14:22:11Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/KYZBYWJE"}],"notes":["<p>introduces \"virtual servers\" on Chord</p>"],"itemID":457,"citekey":"dabekWideareaCooperativeStorage"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":460,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":459,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper key 7V3B7KYG
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper citationKey ledlieDistributedSecureLoad2005
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete conferencePaper libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"conferencePaper","url":"http://nrs.harvard.edu/urn-3:HUL.InstRepos:2962660","volume":"2","place":"Miami, FL, USA","publisher":"IEEE","pages":"1419-1430","ISBN":"978-0-7803-8968-7","date":"2005","DOI":"10.1109/INFCOM.2005.1498366","accessDate":"2019-04-04T14:49:12Z","libraryCatalog":"Crossref","conferenceName":"Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies.","language":"en","abstractNote":"Numerous proposals exist for load balancing in peer-to-peer (p2p) networks. Some focus on namespace balancing, making the distance between nodes as uniform as possible. This technique works well under ideal conditions, but not under those found empirically. Instead, researchers have found heavytailed query distributions (skew), high rates of node join and leave (churn), and wide variation in node network and storage capacity (heterogeneity). Other approaches tackle these less-thanideal conditions, but give up on important security properties. We propose an algorithm that both facilitates good performance and does not dilute security. Our algorithm, k-Choices, achieves load balance by greedily matching nodes’ target workloads with actual applied workloads through limited sampling, and limits any fundamental decrease in security by basing each nodes’ set of potential identifiers on a single certificate. Our algorithm compares favorably to four others in trace-driven simulations. We have implemented our algorithm and found that it improved aggregate throughput by 20% in a widely heterogeneous system in our experiments.","title":"Distributed, secure load balancing with skew, heterogeneity, and churn","creators":[{"firstName":"J.","lastName":"Ledlie","creatorType":"author"},{"firstName":"M.","lastName":"Seltzer","creatorType":"author"}],"tags":["load balancing"],"relations":[],"dateAdded":"2019-04-04T14:49:12Z","dateModified":"2019-04-08T11:10:18Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/7V3B7KYG","attachments":[{"itemType":"attachment","title":"Ledlie und Seltzer - 2005 - Distributed, secure load balancing with skew, hete.pdf","tags":[],"relations":[],"dateAdded":"2019-04-04T14:49:08Z","dateModified":"2019-04-04T14:49:15Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/VCTAD9SK"}],"notes":["<blockquote>\n<p><span style=\"left: 665.542px; top: 170.46px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.846113);\">He shows that validating nodes </span><span style=\"left: 665.542px; top: 195.964px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848795);\">must verify all other nodes’ credentials simultaneously, an act </span><span style=\"left: 665.542px; top: 221.468px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.862709);\">that may exceed the verifier’s resources.</span><span style=\"left: 686.797px; top: 247.002px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.877705);\">A system may acquire a low level of security by requiring </span><span style=\"left: 665.542px; top: 272.506px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.800582);\">that IDs be based on the hash of the node’s IP address</span></p>\n</blockquote>\n<p> </p>\n<ul>\n<li>although a centralised certification agency does not suite the fediverse's architecture, instead of the certified number a number derived from domain and IP can be used as a seed for ID generation</li>\n<li>\n<blockquote><span style=\"left: 665.542px; top: 502.076px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.879458);\">Each node can then use this number to generate its own IDs </span><span style=\"left: 665.542px; top: 527.58px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.812455);\">using an ID-generating hash function h. […]<br /><span style=\"left: 665.542px; top: 578.59px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.885379);\">k-Choices </span><span style=\"left: 759.458px; top: 578.59px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.82251);\">creates a set of verifiable IDs by generating each</span><span style=\"left: 665.5424000000003px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">k</span><span style=\"left: 683.4858666666669px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">=</span><span style=\"left: 706.2272000000003px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">h</span><span style=\"left: 718.4725333333337px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">(</span><span style=\"left: 726.7392000000003px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">x</span><span style=\"left: 738.886px; top: 618.21px; font-size: 14.8779px; font-family: sans-serif; transform: scaleX(1.17077);\">cert</span><span style=\"left: 775.223466666667px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">+</span><span style=\"left: 796.599466666667px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">c</span><span style=\"left: 805.796266666667px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">) </span><span style=\"left: 821.666px; top: 604.094px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.81132);\">where </span><span style=\"left: 881.1925333333337px; top: 610.597713066668px; font-size: 21.254399999999997px; font-family: sans-serif;\">c </span><span style=\"left: 897.995px; top: 604.094px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.863619);\">has a well-known bound</span><br /></span></blockquote>\n</li>\n<li> \n<blockquote><span style=\"left: 104.446px; top: 1138.83px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.859694);\">At each VS </span><span style=\"left: 104.446px; top: 1164.33px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.821691);\">insertion,</span><span style=\"left: 190.963px; top: 1164.33px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.885379);\">k-Choices </span><span style=\"left: 282.771px; top: 1164.33px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.8466);\">minimizes the discrepancy between work </span><span style=\"left: 104.446px; top: 1189.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.817694);\">and capacity by sampling from a small set of potential IDs. </span><span style=\"left: 104.446px; top: 1215.34px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.856121);\">By limiting the number of potential IDs,</span><span style=\"left: 456.113px; top: 1215.34px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.885379);\">k-Choices </span><span style=\"left: 546.897px; top: 1215.34px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.83907);\">is practical </span><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">for networks containing malicious participants.</span></blockquote>\n</li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">estimating costs of join: needs estimation of weight shifted from another node</span>\n<ul>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">how to estimate this?</span></li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">estimation easy, if all data items have equal size and are distributed equally</span></li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">but if sizes of items differ heavily, required to rely on information of other nodes about what weight they have</span></li>\n<li>\n<blockquote><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">We<br />assume that nodes do not lie or that Distributed Algorithmic<br />Mechanism Design techniques could be used to encourage the<br />truthfulness of the information they provide about load</span></blockquote>\n</li>\n</ul>\n</li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">load metric: find appropriate way of quantifying load even of out-of-band direct ActivityPub communication</span>\n<ul>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">2 kinds of load:</span>\n<ul>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">storage usage</span></li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">network load</span></li>\n</ul>\n</li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">paper: adds 1 load unit for each query, but in my case majority of network load probably comes from communication outside of DHT overlay. That has to be quantified as well</span></li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">bookkeeping of load needs to be done per VS/ per key for proper cost estimation/ guessing</span></li>\n</ul>\n</li>\n<li><span style=\"left: 104.446px; top: 1240.84px; font-size: 21.2544px; font-family: serif; transform: scaleX(0.848765);\">they claim their approach is suited for routing load balancing, not for storage load balancing. But I think it can be useful for storage imbalance as well</span></li>\n</ul>"],"itemID":460,"citekey":"ledlieDistributedSecureLoad2005","publicationTitle":"Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies."}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":472,"legacy":false,"skipChildItems":false}
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete book version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete book collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete book key WHSGQKBT
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete book citationKey tange_ole_2018_1146014
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete book journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete book libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"book","url":"https://doi.org/10.5281/zenodo.1146014","publisher":"Ole Tange","date":"2018-04","extra":"Citation Key: tange_ole_2018_1146014 \nDOI: 10.5281/zenodo.1146014","title":"GNU Parallel 2018","creators":[{"firstName":"Ole","lastName":"Tange","creatorType":"author"}],"tags":[],"relations":[],"dateAdded":"2019-04-11T21:11:43Z","dateModified":"2019-04-11T21:11:43Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/WHSGQKBT","attachments":[],"notes":[],"itemID":472,"citekey":"tange_ole_2018_1146014"}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":474,"legacy":false,"skipChildItems":false}
(3)(+0000004): {BetterBibTeX JSON +4} bbt json: delete computerProgram version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram key A7KWGKHC
(3)(+0000002): {BetterBibTeX JSON +2} bbt json: delete computerProgram citationKey schubertDiasporaTagUsage
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"computerProgram","url":"https://0b101010.codes/research-things/open-data/tree/master/diaspora/tag-usage","rights":"ODC Attribution License","abstractNote":"Contains a list of posts associated with authors, pods, and used tags. Allows analysis about how posts and tags spread, and how tags are used in general.","title":"diaspora* Tag Usage Data for pod.geraspora.de","creators":[{"firstName":"Dennis","lastName":"Schubert","creatorType":"programmer"}],"tags":[],"relations":[],"dateAdded":"2019-05-06T13:46:02Z","dateModified":"2019-05-06T13:53:23Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/A7KWGKHC","attachments":[],"notes":[],"itemID":474,"citekey":"schubertDiasporaTagUsage"}
(3)(+0000000): {better-bibtex +0} serializer cache miss: {"itemID":475,"legacy":false,"skipChildItems":false}
(3)(+0000002): {better-bibtex +2} serializer cache miss: {"itemID":476,"legacy":false,"skipChildItems":false}
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram version 0
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram collections ["IDZQD7HH"]
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram key 7AMBZDRJ
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram citationKey DiasporaProject
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram journalAbbreviation undefined
(3)(+0000000): {BetterBibTeX JSON +0} bbt json: delete computerProgram libraryID 1
(3)(+0000000): {BetterBibTeX JSON +0} adding item {"itemType":"computerProgram","url":"https://diasporafoundation.org/","accessDate":"2019-05-06T14:05:47Z","title":"The diaspora* Project","creators":[],"tags":[],"relations":[],"dateAdded":"2019-05-06T14:05:47Z","dateModified":"2019-05-06T14:07:29Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/7AMBZDRJ","attachments":[{"itemType":"attachment","title":"The diaspora* Project - https://diasporafoundation.org/","tags":[],"relations":[],"dateAdded":"2019-05-06T14:05:48Z","dateModified":"2019-05-06T14:05:48Z","uri":"http://zotero.org/users/local/BdKbmhNo/items/52S85ZVN"}],"notes":[],"itemID":475,"citekey":"DiasporaProject"}
(3)(+0000000): {BetterBibTeX JSON +0} data ready
(3)(+0000002): {BetterBibTeX JSON +2} export done
(3)(+0000000): Translate: BetterBibTeX JSON export took 336
(3)(+0000000): Translate: Translation successful
(5)(+0000000): Translate: Running handler 0 for done
(3)(+0000000): {better-bibtex +0} Translators.exportItems complete in {"time":412,"translatorID":"36a3b0b5-bad0-4a04-b79b-441c7cef77db","displayOptions":{"exportNotes":true,"dropAttachments":true},"path":null}
(5)(+0000000): Translate: Running handler 1 for done
(3)(+0000002): {better-bibtex +2} ErrorReport::init references 126387
(3)(+0000000): {better-bibtex +0} ErrorReport.init: ["info","errors","debug","references"]
(3)(+0000000): {better-bibtex +0} ErrorReport.current: https://api.github.com/repos/retorquere/zotero-better-bibtex/releases/latest
(3)(+0000000): HTTP GET https://api.github.com/repos/retorquere/zotero-better-bibtex/releases/latest
(3)(+0003512): HTTP GET https://api.github.com/repos/retorquere/zotero-better-bibtex/releases/latest succeeded with 200
(3)(+0000000): {better-bibtex +3512} ErrorReport.current: 5.1.76
(3)(+0000002): HTTP GET http://s3.eu-central-1.amazonaws.com/ping
(3)(+0000002): HTTP GET http://s3.ap-southeast-1.amazonaws.com/ping
(3)(+0000052): HTTP GET http://s3.eu-central-1.amazonaws.com/ping succeeded with 200
(3)(+0000002): {better-bibtex +58} ErrorReport.ping: http://better-bibtex-error-reports-62200312-euc.s3-eu-central-1.amazonaws.com 77DV2CKD-euc
(3)(+0000704): HTTP GET http://s3.ap-southeast-1.amazonaws.com/ping succeeded with 200
(3)(+0004652): Collection.getName() deprecated -- use Collection.name
(3)(+0000002): Translate: All translator detect calls and RPC calls complete:
(3)(+0000000): TEI: 25
(3)(+0000000): Zotero RDF: 25
(3)(+0000000): Better BibLaTeX: 50
(3)(+0000000): Bibliontology RDF: 50
(3)(+0000000): MODS: 50
(3)(+0000000): Simple Evernote Export: 50
(3)(+0000000): BetterBibTeX JSON: 99
(3)(+0000000): Better BibTeX Citation Key Quick Copy: 100
(3)(+0000000): Better CSL JSON: 100
(3)(+0000000): Better CSL YAML: 100
(3)(+0000000): BibLaTeX: 100
(3)(+0000000): Bookmarks: 100
(3)(+0000000): Citation graph: 100
(3)(+0000000): Collected notes: 100
(3)(+0000000): CSL JSON: 100
(3)(+0000000): CSV: 100
(3)(+0000000): Endnote XML: 100
(3)(+0000000): Refer/BibIX: 100
(3)(+0000000): RefWorks Tagged: 100
(3)(+0000000): RIS: 100
(3)(+0000000): Unqualified Dublin Core RDF: 100
(3)(+0000000): Wikipedia Citation Templates: 100
(3)(+0000000): Better BibTeX: 199
(3)(+0000000): BibTeX: 200
(3)(+0000000): COinS: 310
(3)(+0000068): zotero-better-bibtex: loading content/ExportOptions.ts
(3)(+0000000): zotero-better-bibtex: loaded content/ExportOptions.ts
(3)(+0000038): {better-bibtex +5464} export-options add event handler for export-option-exportFileData
(3)(+0000000): {better-bibtex +0} export-options add event handler for export-option-keepUpdated
(3)(+0001786): {better-bibtex +1786} clicked export-option-keepUpdated
(3)(+0001610): Starting full-text content processor
(3)(+0019576): {better-bibtex +21186} AutoExport.add {"type":"collection","id":6,"path":"/home/spiollinux/Seafile/Studium/Semester9/Großer Beleg/paper_hashtag_federation/literature.bib","status":"done","translatorID":"f895aa0d-f28e-47fe-b247-2ea77c6ed583","exportNotes":true,"useJournalAbbreviation":false,"DOIandURL":"both","asciiBibLaTeX":false,"asciiBibTeX":true,"biblatexExtendedNameFormat":false,"bibtexParticleNoOp":false,"bibtexURL":"url"}
(4)(+0000002): Translate: Binding sandbox to http://www.example.com/
(3)(+0000004): Getting contents of /home/spiollinux/Zotero/translators/Better BibLaTeX.js
(4)(+0000090): Translate: Parsing code for Better BibLaTeX (f895aa0d-f28e-47fe-b247-2ea77c6ed583, 2019-04-29 19:26:46)
(3)(+0000046): Translate: zotero-better-bibtex: loading translators/Better BibLaTeX.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/bibtex/reference.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/lib/exporter.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/bibtex/jabref.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/lib/debug.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded translators/lib/debug.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded translators/bibtex/jabref.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading gen/itemfields.ts
(3)(+0000004): Translate: zotero-better-bibtex: loaded gen/itemfields.ts
(3)(+0000018): Translate: zotero-better-bibtex: loaded translators/lib/exporter.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/bibtex/unicode_translator.ts
(3)(+0000010): Translate: zotero-better-bibtex: loaded translators/bibtex/unicode_translator.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading translators/bibtex/datefield.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded translators/bibtex/datefield.ts
(3)(+0000000): Translate: zotero-better-bibtex: loading content/arXiv.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded content/arXiv.ts
(3)(+0000002): Translate: zotero-better-bibtex: loaded translators/bibtex/reference.ts
(3)(+0000000): Translate: zotero-better-bibtex: loaded translators/Better BibLaTeX.ts
(1)(+0000012): [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFileOutputStream.init]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: chrome://zotero/content/xpcom/translation/translate_firefox.js :: Zotero.Translate.IO.Write :: line 950" data: no] Zotero.Translate.IO.Write@chrome://zotero/content/xpcom/translation/translate_firefox.js:950:3 rest@chrome://zotero/content/xpcom/translation/translate.js:2605:18 Zotero.Translate.Export.prototype._prepareTranslation</<@chrome://zotero/content/xpcom/translation/translate.js:2587:35 tryCatcher@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/util.js:16:16 module.exports/Promise.prototype._settlePromiseFromHandler@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/promise.js:512:13 module.exports/Promise.prototype._settlePromise@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/promise.js:569:13 module.exports/Promise.prototype._settlePromiseCtx@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/promise.js:606:5 Async.prototype._drainQueue@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/async.js:138:9 From previous event: captureStackTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:829:23 CapturedTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:721:5 longStackTracesCaptureStackTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:400:19 module.exports/Promise.prototype._then@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/promise.js:232:9 module.exports/Promise.prototype._passThrough@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/finally.js:94:12 module.exports/Promise.prototype.finally@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/finally.js:103:12 PromiseSpawn@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:36:25 module.exports/Promise.coroutine/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:197:21 exportCollection@chrome://zotero/content/fileInterface.js:169:5 ZoteroPane</_collectionContextMenuOptions<.oncommand@chrome://zotero/content/zoteroPane.js:2452:22 ZoteroPane</this.onCollectionContextMenuSelect@chrome://zotero/content/zoteroPane.js:2367:7 oncommand@chrome://zotero/content/standalone/standalone.xul:1:1
(3)(+0000566): {better-bibtex +754} idle, saving better-bibtex
(4)(+0000004): Beginning DB transaction t5arYXts
(4)(+0000008): SELECT name FROM "better-bibtex"
(4)(+0000002): REPLACE INTO "better-bibtex" (name, data) VALUES (?, ?) ['better-bibtex.autoexport', '{"name":"autoexport","data":[{"type":"collection","id":2,"path":"/home/spiollinux/Seafile/Studium/Semester8/HS Technischer Datenschutz/latex-paper/mybib.bib","status":"done","translatorID":"ca65189f-8815-4afe-8c8b-8c7c15f0edca","exportNotes":false,"useJournalAbbreviation":false,"error":"","meta":{"revision":87,"created":1528755826840,"version":0,"updated":1557149804230},"$loki":2,"DOIandURL":"both","asciiBibLaTeX":false,"asciiBibTeX":true,"biblatexExtendedNameFormat":false,"bibtexParticleNoOp":false,"bibtexURL":"off"},{"type":"collection","id":4,"path":"/home/spiollinux/Seafile/Studium/Semester8/Influential OS Research/latex-paper/mybib.bib","status":"done","translatorID":"ca65189f-8815-4afe-8c8b-8c7c15f0edca","exportNotes":false,"useJournalAbbreviation":false,"DOIandURL":"both","asciiBibLaTeX":false,"asciiBibTeX":true,"biblatexExtendedNameFormat":false,"bibtexParticleNoOp":false,"bibtexURL":"url","error":"","meta":{"revision":293,"created":1536092646776,"version":0,"updated":1557149805026},"$loki":3},{"type":"collection","id":8,"path":"/home/spiollinux/Seafile/Studium/Semester9/OS Reading Group/NixOS_paper/NixOS_presentation.bib","status":"done","translatorID":"ca65189f-8815-4afe-8c8b-8c7c15f0edca","exportNotes":false,"useJournalAbbreviation":false,"DOIandURL":"both","asciiBibLaTeX":false,"asciiBibTeX":true,"biblatexExtendedNameFormat":false,"bibtexParticleNoOp":false,"bibtexURL":"url","error":"","meta":{"revision":22,"created":1542849273047,"version":0,"updated":1557149805250},"$loki":4},{"type":"collection","id":6,"path":"/home/spiollinux/Seafile/Studium/Semester9/Großer Beleg/literature.bib","status":"done","translatorID":"f895aa0d-f28e-47fe-b247-2ea77c6ed583","exportNotes":true,"useJournalAbbreviation":false,"DOIandURL":"both","asciiBibLaTeX":false,"asciiBibTeX":true,"biblatexExtendedNameFormat":false,"bibtexParticleNoOp":false,"bibtexURL":"url","error":"","meta":{"revision":0,"created":1557152903560,"version":0},"$loki":10},{"type":"collection","id":6,"path":"/home/spiollinux/Seafile/Studium/Semester9/Großer Beleg/paper_hashtag_federation/literature.bib","status":"done","translatorID":"f895aa0d-f28e-47fe-b247-2ea77c6ed583","exportNotes":true,"useJournalAbbreviation":false,"DOIandURL":"both","asciiBibLaTeX":false,"asciiBibTeX":true,"biblatexExtendedNameFormat":false,"bibtexParticleNoOp":false,"bibtexURL":"url","error":"","meta":{"revision":0,"created":1557153057246,"version":0},"$loki":11}],"idIndex":[2,3,4,10,11],"binaryIndices":{"type":{"name":"type","dirty":true,"values":[0,1,2,3]},"id":{"name":"id","dirty":true,"values":[0,1]},"status":{"name":"status","dirty":true,"values":[0,1]},"path":{"name":"path","dirty":true,"values":[0,1,4,3,2]},"exportNotes":{"name":"exportNotes","dirty":true,"values":[0,1]},"translatorID":{"name":"translatorID","dirty":true,"values":[0,1,2,3]},"useJournalAbbreviation":{"name":"useJournalAbbreviation","dirty":true,"values":[0,1]}},"constraints":null,"uniqueNames":["path"],"transforms":{},"objType":"autoexport","dirty":true,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":false,"transactional":false,"cloneObjects":true,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"ttl":null,"maxId":11,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[]}']
(4)(+0000002): REPLACE INTO "better-bibtex" (name, data) VALUES (?, ?) ['better-bibtex', '{"filename":"better-bibtex","collections":["better-bibtex.citekey","better-bibtex.autoexport"],"databaseVersion":1.5,"engineVersion":1.5,"autosave":false,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":false,"options":{"env":"NA","serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceAdapter":null,"throttledSavePending":false,"throttledCallbacks":[],"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NA"}']
(4)(+0000012): Committed DB transaction t5arYXts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment