{
	"schemaVersion": 1,
	"quickAddVersion": "2.28.0",
	"createdAt": "2026-09-27T00:00:00.000Z",
	"rootChoiceIds": [
		"qa-pkg-readwise-book-notes",
		"qa-pkg-readwise-book-notes-macro"
	],
	"choices": [
		{
			"choice": {
				"id": "qa-pkg-readwise-book-notes",
				"name": "Add Book Notes",
				"type": "Template",
				"command": true,
				"onePageInput": "never",
				"templatePath": "Templates/Book Notes.md",
				"fileNameFormat": {
					"enabled": true,
					"format": "{{MACRO:Readwise::getBooks}}"
				},
				"discoverExistingNotesBeforeCreate": false,
				"folder": {
					"enabled": true,
					"folders": [
						"Books"
					],
					"chooseWhenCreatingNote": false,
					"createInSameFolderAsActiveFile": false,
					"chooseFromSubfolders": false
				},
				"appendLink": false,
				"copyLinkToClipboard": false,
				"openFile": true,
				"fileOpening": {
					"location": "tab",
					"direction": "vertical",
					"mode": "default",
					"focus": true
				},
				"fileExistsBehavior": {
					"kind": "prompt"
				}
			},
			"pathHint": [
				"Add Book Notes"
			],
			"parentChoiceId": null
		},
		{
			"choice": {
				"id": "qa-pkg-readwise-book-notes-macro",
				"name": "Readwise",
				"type": "Macro",
				"command": false,
				"runOnStartup": false,
				"macro": {
					"id": "qa-pkg-readwise-book-notes-macro-body",
					"name": "Readwise",
					"commands": [
						{
							"id": "qa-pkg-readwise-book-notes-script",
							"name": "readwise",
							"type": "UserScript",
							"path": "scripts/readwise.js",
							"settings": {}
						}
					]
				}
			},
			"pathHint": [
				"Readwise"
			],
			"parentChoiceId": null
		}
	],
	"assets": [
		{
			"kind": "user-script",
			"originalPath": "scripts/readwise.js",
			"contentEncoding": "base64",
			"content": "Ly8gUHVsbHMgYm9va3MsIGFydGljbGVzIGFuZCBoaWdobGlnaHRzIGZyb20gUmVhZHdpc2UgaW50byBub3Rlcy4KLy8gZW50cnkgbGV0cyB5b3UgcGljayBhIGNhdGVnb3J5IGFuZCBpdGVtOyBnZXRCb29rcyBwaWNrcyBhIGJvb2sgdGl0bGUgKHVzZSBpdCBpbiBhCi8vIGZpbGUgbmFtZSBmb3JtYXQpLCBpbnN0YUZldGNoQm9vayB3cml0ZXMgdGhhdCBib29rJ3MgaGlnaGxpZ2h0cywgZ2V0RGFpbHlRdW90ZQovLyByZXR1cm5zIGEgcmFuZG9tIHN1cHBsZW1lbnRhbCBoaWdobGlnaHQgYXMgYSBxdW90ZS4KLy8gRG9jczogaHR0cHM6Ly9xdWlja2FkZC5vYnNpZGlhbi5ndWlkZS9kb2NzL0V4YW1wbGVzL1RlbXBsYXRlX0F1dG9tYXRpY0Jvb2tOb3Rlc0Zyb21SZWFkd2lzZQpjb25zdCBBQ0NFU1NfVE9LRU4gPSAiUmVhZHdpc2UgYWNjZXNzIHRva2VuIjsKCm1vZHVsZS5leHBvcnRzID0gewoJZW50cnk6IHN0YXJ0LAoJc2V0dGluZ3M6IHsKCQluYW1lOiAiUmVhZHdpc2UiLAoJCWF1dGhvcjogIkNocmlzdGlhbiBCLiBCLiBIb3VtYW5uIiwKCQlvcHRpb25zOiB7CgkJCVtBQ0NFU1NfVE9LRU5dOiB7CgkJCQl0eXBlOiAic2VjcmV0IiwKCQkJCWlkOiAicmVhZHdpc2UtYWNjZXNzLXRva2VuIiwKCQkJCXBsYWNlaG9sZGVyOiAiUGFzdGUgYWNjZXNzIHRva2VuIiwKCQkJCWRlc2NyaXB0aW9uOiAiRnJvbSByZWFkd2lzZS5pby9hY2Nlc3NfdG9rZW4uIiwKCQkJfSwKCQl9LAoJfSwKCWdldERhaWx5UXVvdGUsCglpbnN0YUZldGNoQm9vaywKCWdldEJvb2tzLAp9Owpjb25zdCBhcGlVcmwgPSAiaHR0cHM6Ly9yZWFkd2lzZS5pby9hcGkvdjIvIjsKY29uc3QgYm9va3MgPSAi8J+TmiBCb29rcyIsCglhcnRpY2xlcyA9ICLwn5OwIEFydGljbGVzIiwKCXR3ZWV0cyA9ICLwn5CkIFR3ZWV0cyIsCglzdXBwbGVtZW50YWxzID0gIvCfkq0gU3VwcGxlbWVudGFscyIsCglwb2RjYXN0cyA9ICLwn46ZIFBvZGNhc3RzIiwKCXNlYXJjaEFsbCA9ICLwn5SNIFNlYXJjaCBBbGwgSGlnaGxpZ2h0cyAoc2xvdyEpIjsKY29uc3QgY2F0ZWdvcmllcyA9IHsKCWJvb2tzLAoJYXJ0aWNsZXMsCgl0d2VldHMsCglzdXBwbGVtZW50YWxzLAoJcG9kY2FzdHMsCglzZWFyY2hBbGwsCn07CmNvbnN0IHJhbmRvbU51bWJlckluUmFuZ2UgPSAobWF4KSA9PiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBtYXgpOwpsZXQgdG9rZW47CmxldCBxdWlja0FkZEFwaTsKbGV0IG5vdGljZSA9ICgpID0+IHt9OwoKZnVuY3Rpb24gdXNlVG9rZW4ocGFyYW1zLCBzZXR0aW5ncykgewoJbm90aWNlID0gKG1lc3NhZ2UsIHRpbWVvdXQpID0+IG5ldyBwYXJhbXMub2JzaWRpYW4uTm90aWNlKG1lc3NhZ2UsIHRpbWVvdXQpOwoJdG9rZW4gPSAoc2V0dGluZ3M/LltBQ0NFU1NfVE9LRU5dID8/ICIiKS50cmltKCk7CglpZiAoIXRva2VuKSB7CgkJbm90aWNlKCJTZXQgeW91ciBSZWFkd2lzZSBhY2Nlc3MgdG9rZW4gaW4gdGhlIHNjcmlwdCBzZXR0aW5ncy4iKTsKCQl0aHJvdyBuZXcgRXJyb3IoIlJlYWR3aXNlIGFjY2VzcyB0b2tlbiBpcyBub3Qgc2V0LiIpOwoJfQp9Cgphc3luYyBmdW5jdGlvbiBzdGFydChwYXJhbXMsIHNldHRpbmdzKSB7Cgl1c2VUb2tlbihwYXJhbXMsIHNldHRpbmdzKTsKCSh7IHF1aWNrQWRkQXBpIH0gPSBwYXJhbXMpOwoJbGV0IGhpZ2hsaWdodHM7Cgljb25zdCBjYXRlZ29yeSA9IGF3YWl0IGNhdGVnb3J5UHJvbXB0SGFuZGxlcigpOwoJaWYgKCFjYXRlZ29yeSkgcmV0dXJuOwoKCWlmIChjYXRlZ29yeSA9PT0gInNlYXJjaEFsbCIpIHsKCQloaWdobGlnaHRzID0gYXdhaXQgZ2V0QWxsSGlnaGxpZ2h0cygpOwoJfSBlbHNlIHsKCQljb25zdCBpdGVtcyA9IGF3YWl0IGdldEhpZ2hsaWdodHNCeUNhdGVnb3J5KGNhdGVnb3J5KTsKCQlpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7CgkJCW5vdGljZShgTm90aGluZyB1bmRlciAke2NhdGVnb3JpZXNbY2F0ZWdvcnldfSBpbiBSZWFkd2lzZSB5ZXQuYCk7CgkJCXJldHVybiAiIjsKCQl9CgoJCWNvbnN0IGl0ZW0gPSBhd2FpdCBxdWlja0FkZEFwaS5zdWdnZXN0ZXIoCgkJCWl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50aXRsZSksCgkJCWl0ZW1zCgkJKTsKCQlpZiAoIWl0ZW0pIHJldHVybjsKCgkJcGFyYW1zLnZhcmlhYmxlc1siYXV0aG9yIl0gPSBgW1ske2l0ZW0uYXV0aG9yfV1dYDsKCgkJaGlnaGxpZ2h0cyA9IChhd2FpdCBnZXRIaWdobGlnaHRzRm9yRWxlbWVudChpdGVtKSkucmV2ZXJzZSgpOwoJfQoKCWlmIChoaWdobGlnaHRzLmxlbmd0aCA9PT0gMCkgewoJCW5vdGljZSgiTm8gaGlnaGxpZ2h0cyB0aGVyZSB5ZXQuIik7CgkJcmV0dXJuICIiOwoJfQoKCWNvbnN0IHRleHRUb0FwcGVuZCA9IGF3YWl0IGhpZ2hsaWdodHNQcm9tcHRIYW5kbGVyKGhpZ2hsaWdodHMpOwoJcmV0dXJuICF0ZXh0VG9BcHBlbmQgPyAiIiA6IHRleHRUb0FwcGVuZDsKfQoKLy8gVXNlIGluIGEgZmlsZSBuYW1lIGZvcm1hdDogcGlja3MgYSBib29rIGFuZCByZXR1cm5zIGEgbmFtZSBhIG5vdGUgY2FuIGhhdmUuCi8vIFRoZSBib29rJ3MgcmVhbCB0aXRsZSBhbmQgaWQgYXJlIGtlcHQgaW4gdmFyaWFibGVzIGZvciBpbnN0YUZldGNoQm9vayBhbmQKLy8gZm9yIHt7VkFMVUU6Qm9vayBUaXRsZX19IGluIHRoZSB0ZW1wbGF0ZS4KYXN5bmMgZnVuY3Rpb24gZ2V0Qm9va3MocGFyYW1zLCBzZXR0aW5ncykgewoJdXNlVG9rZW4ocGFyYW1zLCBzZXR0aW5ncyk7Cgljb25zdCBib29rcyA9IGF3YWl0IGdldEhpZ2hsaWdodHNCeUNhdGVnb3J5KCJib29rcyIpOwoJaWYgKGJvb2tzLmxlbmd0aCA9PT0gMCkgewoJCW5vdGljZSgiTm8gYm9va3MgaW4gUmVhZHdpc2UgeWV0LiIpOwoJCXRocm93IG5ldyBFcnJvcigiTm8gYm9va3MgaW4gUmVhZHdpc2UgeWV0LiIpOwoJfQoKCWNvbnN0IGJvb2sgPSBhd2FpdCBwYXJhbXMucXVpY2tBZGRBcGkuc3VnZ2VzdGVyKAoJCWJvb2tzLm1hcCgoYm9vaykgPT4gYm9vay50aXRsZSksCgkJYm9va3MKCSk7CglpZiAoIWJvb2spIHRocm93IG5ldyBFcnJvcigiTm8gYm9vayBzZWxlY3RlZC4iKTsKCglwYXJhbXMudmFyaWFibGVzWyJCb29rIFRpdGxlIl0gPSBib29rLnRpdGxlOwoJcGFyYW1zLnZhcmlhYmxlc1siQm9vayBJZCJdID0gU3RyaW5nKGJvb2suaWQpOwoJcmV0dXJuIGZpbGVOYW1lRm9yKGJvb2sudGl0bGUpOwp9CgovLyBPYnNpZGlhbiByZWZ1c2VzICI6IiBpbiBhIG5hbWUgYW5kIHJlYWRzICIvIiBhbmQgIlwiIGFzIGZvbGRlcnM7IFdpbmRvd3MgYWxzbwovLyByZWZ1c2VzICogPyAiIDwgPiB8LCBhbmQgWyBdICMgXiB8IHdvdWxkIGJyZWFrIHRoZSBbW3t7VElUTEV9fV1dIGxpbmsuCmZ1bmN0aW9uIGZpbGVOYW1lRm9yKHRpdGxlKSB7CglyZXR1cm4gKAoJCXRpdGxlCgkJCS5yZXBsYWNlKC9ccyo6XHMqL2csICIgLSAiKQoJCQkucmVwbGFjZSgvW1xcLyo/Ijw+fCNeW1xdXS9nLCAiIikKCQkJLnJlcGxhY2UoL1xzKy9nLCAiICIpCgkJCS50cmltKCkgfHwgIlVudGl0bGVkIgoJKTsKfQoKYXN5bmMgZnVuY3Rpb24gaW5zdGFGZXRjaEJvb2socGFyYW1zLCBzZXR0aW5ncykgewoJdXNlVG9rZW4ocGFyYW1zLCBzZXR0aW5ncyk7Cgljb25zdCBib29rSWQgPSBwYXJhbXMudmFyaWFibGVzWyJCb29rIElkIl07Cgljb25zdCBib29rVGl0bGUgPSBwYXJhbXMudmFyaWFibGVzWyJCb29rIFRpdGxlIl07CglpZiAoIWJvb2tJZCAmJiAhYm9va1RpdGxlKSByZXR1cm4gYXdhaXQgc3RhcnQocGFyYW1zLCBzZXR0aW5ncyk7CgoJY29uc3QgYm9va3MgPSBhd2FpdCBnZXRIaWdobGlnaHRzQnlDYXRlZ29yeSgiYm9va3MiKTsKCS8vIGdldEJvb2tzIHN0b3JlZCB0aGUgaWQsIHNvIHRoZSBsb29rdXAgaXMgZXhhY3QuIEEgdGl0bGUgc2V0IHNvbWUgb3RoZXIgd2F5CgkvLyAoYW4gb2xkZXIgdGVtcGxhdGUsIGEge3tWQUxVRTpCb29rIFRpdGxlfX0gcHJvbXB0KSBtYXRjaGVzIGV4YWN0bHkgZmlyc3QsCgkvLyB0aGVuIHBhcnRpYWxseSwgc28gIkR1bmUiIGlzIG5vdCBtaXN0YWtlbiBmb3IgIkR1bmUgTWVzc2lhaCIuCgljb25zdCB3YW50ZWQgPSBTdHJpbmcoYm9va1RpdGxlID8/ICIiKS50b0xvd2VyQ2FzZSgpOwoJY29uc3QgYm9vayA9CgkJYm9va3MuZmluZCgoYikgPT4gU3RyaW5nKGIuaWQpID09PSBTdHJpbmcoYm9va0lkKSkgPz8KCQlib29rcy5maW5kKChiKSA9PiBiLnRpdGxlLnRvTG93ZXJDYXNlKCkgPT09IHdhbnRlZCkgPz8KCQlib29rcy5maW5kKChiKSA9PiB3YW50ZWQgJiYgYi50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHdhbnRlZCkpOwoJaWYgKCFib29rKSB0aHJvdyBuZXcgRXJyb3IoIkJvb2sgIiArIGJvb2tUaXRsZSArICIgbm90IGZvdW5kLiIpOwoKCXBhcmFtcy52YXJpYWJsZXNbImF1dGhvciJdID0gYFtbJHtib29rLmF1dGhvcn1dXWA7CgoJY29uc3QgaGlnaGxpZ2h0cyA9IChhd2FpdCBnZXRIaWdobGlnaHRzRm9yRWxlbWVudChib29rKSkucmV2ZXJzZSgpOwoJcmV0dXJuIHdyaXRlQWxsSGFuZGxlcihoaWdobGlnaHRzKTsKfQoKYXN5bmMgZnVuY3Rpb24gZ2V0RGFpbHlRdW90ZShwYXJhbXMsIHNldHRpbmdzKSB7Cgl1c2VUb2tlbihwYXJhbXMsIHNldHRpbmdzKTsKCWNvbnN0IGl0ZW1zID0gYXdhaXQgZ2V0SGlnaGxpZ2h0c0J5Q2F0ZWdvcnkoInN1cHBsZW1lbnRhbHMiKTsKCWlmIChpdGVtcy5sZW5ndGggPT09IDApIHsKCQlub3RpY2UoIk5vIHN1cHBsZW1lbnRhbCBoaWdobGlnaHRzIGluIFJlYWR3aXNlIHlldC4iKTsKCQlyZXR1cm4gIiI7Cgl9Cgljb25zdCB0YXJnZXRJdGVtID0gaXRlbXNbcmFuZG9tTnVtYmVySW5SYW5nZShpdGVtcy5sZW5ndGgpXTsKCgljb25zdCBoaWdobGlnaHRzID0gYXdhaXQgZ2V0SGlnaGxpZ2h0c0ZvckVsZW1lbnQodGFyZ2V0SXRlbSk7CglpZiAoaGlnaGxpZ2h0cy5sZW5ndGggPT09IDApIHsKCQlub3RpY2UoYE5vIGhpZ2hsaWdodHMgaW4gJHt0YXJnZXRJdGVtLnRpdGxlfSB5ZXQuYCk7CgkJcmV0dXJuICIiOwoJfQoKCWNvbnN0IHJhbmRvbUhpZ2hsaWdodCA9IGhpZ2hsaWdodHNbcmFuZG9tTnVtYmVySW5SYW5nZShoaWdobGlnaHRzLmxlbmd0aCldOwoKCXJldHVybiBmb3JtYXREYWlseVF1b3RlKHJhbmRvbUhpZ2hsaWdodC50ZXh0LCB0YXJnZXRJdGVtKTsKfQoKYXN5bmMgZnVuY3Rpb24gY2F0ZWdvcnlQcm9tcHRIYW5kbGVyKCkgewoJY29uc3QgY2hvaWNlID0gYXdhaXQgcXVpY2tBZGRBcGkuc3VnZ2VzdGVyKAoJCU9iamVjdC52YWx1ZXMoY2F0ZWdvcmllcyksCgkJT2JqZWN0LmtleXMoY2F0ZWdvcmllcykKCSk7CglpZiAoIWNob2ljZSkgcmV0dXJuIG51bGw7CgoJcmV0dXJuIGNob2ljZTsKfQoKYXN5bmMgZnVuY3Rpb24gaGlnaGxpZ2h0c1Byb21wdEhhbmRsZXIoaGlnaGxpZ2h0cykgewoJY29uc3Qgd3JpdGVBbGwgPSAiV3JpdGUgYWxsIGhpZ2hsaWdodHMgdG8gcGFnZSIsCgkJd3JpdGVPbmUgPSAiV3JpdGUgb25lIGhpZ2hsaWdodCB0byBwYWdlIjsKCWNvbnN0IGNob2ljZXMgPSBbd3JpdGVBbGwsIHdyaXRlT25lXTsKCgljb25zdCBjaG9pY2UgPSBhd2FpdCBxdWlja0FkZEFwaS5zdWdnZXN0ZXIoY2hvaWNlcywgY2hvaWNlcyk7CglpZiAoIWNob2ljZSkgcmV0dXJuIG51bGw7CgoJaWYgKGNob2ljZSA9PSB3cml0ZUFsbCkgcmV0dXJuIHdyaXRlQWxsSGFuZGxlcihoaWdobGlnaHRzKTsKCWVsc2UgcmV0dXJuIGF3YWl0IHdyaXRlT25lSGFuZGxlcihoaWdobGlnaHRzKTsKfQoKZnVuY3Rpb24gd3JpdGVBbGxIYW5kbGVyKGhpZ2hsaWdodHMpIHsKCXJldHVybiBoaWdobGlnaHRzCgkJLm1hcCgoaGwpID0+IHsKCQkJaWYgKGhsLnRleHQgPT0gIk5vIHRpdGxlIikgcmV0dXJuOwoJCQljb25zdCB7IHF1b3RlLCBub3RlIH0gPSB0ZXh0Rm9ybWF0dGVyKGhsLnRleHQsIGhsLm5vdGUpOwoJCQlyZXR1cm4gYCR7cXVvdGV9JHtub3RlfWA7CgkJfSkKCQkuam9pbigiXG5cbiIpOwp9Cgphc3luYyBmdW5jdGlvbiB3cml0ZU9uZUhhbmRsZXIoaGlnaGxpZ2h0cykgewoJY29uc3QgY2hvc2VuSGlnaGxpZ2h0ID0gYXdhaXQgcXVpY2tBZGRBcGkuc3VnZ2VzdGVyKAoJCWhpZ2hsaWdodHMubWFwKChobCkgPT4gaGwudGV4dCksCgkJaGlnaGxpZ2h0cwoJKTsKCWlmICghY2hvc2VuSGlnaGxpZ2h0KSByZXR1cm4gbnVsbDsKCgljb25zdCB7IHF1b3RlLCBub3RlIH0gPSB0ZXh0Rm9ybWF0dGVyKAoJCWNob3NlbkhpZ2hsaWdodC50ZXh0LAoJCWNob3NlbkhpZ2hsaWdodC5ub3RlCgkpOwoKCXJldHVybiBgJHtxdW90ZX0ke25vdGV9YDsKfQoKZnVuY3Rpb24gZm9ybWF0RGFpbHlRdW90ZShzb3VyY2VUZXh0LCBzb3VyY2VJdGVtKSB7CglsZXQgcXVvdGUgPSBzb3VyY2VUZXh0CgkJLnNwbGl0KCJcbiIpCgkJLmZpbHRlcigobGluZSkgPT4gbGluZSAhPSAiIikKCQkubWFwKChsaW5lKSA9PiB7CgkJCXJldHVybiBgPiAke2xpbmV9YDsKCQl9KTsKCgljb25zdCBhdHRyID0gYFxuPlxcLSAke3NvdXJjZUl0ZW0uYXV0aG9yfSwgXyR7c291cmNlSXRlbS50aXRsZX1fYDsKCglyZXR1cm4gYCR7cXVvdGUuam9pbigiXG4iKX0ke2F0dHJ9YDsKfQoKZnVuY3Rpb24gdGV4dEZvcm1hdHRlcihzb3VyY2VUZXh0LCByYXdTb3VyY2VOb3RlKSB7CgkvLyBSZWFkd2lzZSBjYW4gcmV0dXJuIGEgaGlnaGxpZ2h0IHdpdGhvdXQgYSBub3RlIChudWxsL3VuZGVmaW5lZCByYXRoZXIKCS8vIHRoYW4gIiIpOyBub3JtYWxpemUgb25jZSBzbyB0aGUgLmluY2x1ZGVzIHByb2JlIGJlbG93IGNhbid0IHRocm93IGFuZAoJLy8gYWJvcnQgdGhlIHdob2xlIGltcG9ydCBvbiBhIHNpbmdsZSBub3RlLWxlc3MgaGlnaGxpZ2h0LgoJY29uc3Qgc291cmNlTm90ZSA9IHJhd1NvdXJjZU5vdGUgPz8gIiI7CglsZXQgcXVvdGUgPSBzb3VyY2VUZXh0CgkJLnNwbGl0KCJcbiIpCgkJLmZpbHRlcigobGluZSkgPT4gbGluZSAhPSAiIikKCQkubWFwKChsaW5lKSA9PiB7CgkJCWlmIChzb3VyY2VOb3RlLmluY2x1ZGVzKCIuaDEiKSkgcmV0dXJuIGAjIyAke2xpbmV9YDsKCQkJZWxzZSByZXR1cm4gYD4gJHtsaW5lfWA7CgkJfSkKCQkuam9pbigiXG4iKTsKCglsZXQgbm90ZTsKCglpZiAoc291cmNlTm90ZS5pbmNsdWRlcygiLmgxIikgfHwgc291cmNlTm90ZSA9PSAiIiB8fCAhc291cmNlTm90ZSkgewoJCW5vdGUgPSAiIjsKCX0gZWxzZSB7CgkJbm90ZSA9ICJcblxuIiArIHNvdXJjZU5vdGU7Cgl9CgoJcmV0dXJuIHsgcXVvdGUsIG5vdGUgfTsKfQoKLy8gUmVhZHdpc2UgbGlzdHMgYXQgbW9zdCAxMDAwIGl0ZW1zIHBlciBwYWdlOyB0aGVzZSByZXR1cm4gZXZlcnkgcGFnZSdzIGl0ZW1zLgpjb25zdCBQQUdFX1NJWkUgPSAxMDAwOwoKYXN5bmMgZnVuY3Rpb24gZ2V0SGlnaGxpZ2h0c0J5Q2F0ZWdvcnkoY2F0ZWdvcnkpIHsKCXJldHVybiBhcGlHZXRBbGwoYCR7YXBpVXJsfWJvb2tzYCwgeyBjYXRlZ29yeSwgcGFnZV9zaXplOiBQQUdFX1NJWkUgfSk7Cn0KCmFzeW5jIGZ1bmN0aW9uIGdldEhpZ2hsaWdodHNGb3JFbGVtZW50KGVsZW1lbnQpIHsKCXJldHVybiBhcGlHZXRBbGwoYCR7YXBpVXJsfWhpZ2hsaWdodHNgLCB7CgkJYm9va19pZDogZWxlbWVudC5pZCwKCQlwYWdlX3NpemU6IFBBR0VfU0laRSwKCX0pOwp9Cgphc3luYyBmdW5jdGlvbiBnZXRBbGxIaWdobGlnaHRzKCkgewoJcmV0dXJuIGFwaUdldEFsbChgJHthcGlVcmx9aGlnaGxpZ2h0c2AsIHsgcGFnZV9zaXplOiBQQUdFX1NJWkUgfSk7Cn0KCi8vIEZvbGxvd3MgYG5leHRgIG9uZSBwYWdlIGF0IGEgdGltZTogdGhlIGxpc3QgZW5kcG9pbnRzIGFsbG93IDIwIHJlcXVlc3RzIGEKLy8gbWludXRlLCBzbyBmZXRjaGluZyBwYWdlcyBpbiBwYXJhbGxlbCB3b3VsZCB0cmlwIHRoZSBsaW1pdCBvbiBiaWcgbGlicmFyaWVzLgphc3luYyBmdW5jdGlvbiBhcGlHZXRBbGwodXJsLCBkYXRhKSB7Cgljb25zdCByZXN1bHRzID0gW107CglsZXQgbmV4dCA9IHdpdGhRdWVyeSh1cmwsIGRhdGEpOwoJd2hpbGUgKG5leHQpIHsKCQljb25zdCBwYWdlID0gYXdhaXQgYXBpR2V0KG5leHQpOwoJCXJlc3VsdHMucHVzaCguLi5wYWdlLnJlc3VsdHMpOwoJCW5leHQgPSBwYWdlLm5leHQ7Cgl9CglyZXR1cm4gcmVzdWx0czsKfQoKZnVuY3Rpb24gd2l0aFF1ZXJ5KHVybCwgZGF0YSkgewoJY29uc3QgZmluYWxVUkwgPSBuZXcgVVJMKHVybCk7Cglmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhID8/IHt9KSkgewoJCWZpbmFsVVJMLnNlYXJjaFBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7Cgl9CglyZXR1cm4gZmluYWxVUkwudG9TdHJpbmcoKTsKfQoKYXN5bmMgZnVuY3Rpb24gYXBpR2V0KHVybCwgZGF0YSkgewoJY29uc3QgZmluYWxVUkwgPSB3aXRoUXVlcnkodXJsLCBkYXRhKTsKCWZvciAobGV0IGF0dGVtcHQgPSAxOyA7IGF0dGVtcHQrKykgewoJCWNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGZpbmFsVVJMLCB7CgkJCW1ldGhvZDogIkdFVCIsCgkJCWNhY2hlOiAibm8tY2FjaGUiLAoJCQloZWFkZXJzOiB7CgkJCQkiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAoJCQkJQXV0aG9yaXphdGlvbjogYFRva2VuICR7dG9rZW59YCwKCQkJfSwKCQl9KTsKCQkvLyBPdmVyIHRoZSByYXRlIGxpbWl0OiBSZWFkd2lzZSBzYXlzIGhvdyBsb25nIHRvIHdhaXQsIHNvIHdhaXQgYW5kIGdvIGFnYWluLgoJCWlmIChyZXMuc3RhdHVzID09PSA0MjkgJiYgYXR0ZW1wdCA8IDQpIHsKCQkJY29uc3Qgc2Vjb25kcyA9IE51bWJlcihyZXMuaGVhZGVycy5nZXQoIlJldHJ5LUFmdGVyIikpIHx8IDYwOwoJCQlub3RpY2UoYFJlYWR3aXNlIHJhdGUgbGltaXQgcmVhY2hlZCwgd2FpdGluZyAke3NlY29uZHN9IHPigKZgLCBzZWNvbmRzICogMTAwMCk7CgkJCWF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHNlY29uZHMgKiAxMDAwKSk7CgkJCWNvbnRpbnVlOwoJCX0KCQlpZiAoIXJlcy5vaykgewoJCQljb25zdCBoaW50ID0KCQkJCXJlcy5zdGF0dXMgPT09IDQwMSB8fCByZXMuc3RhdHVzID09PSA0MDMgPyAiY2hlY2sgeW91ciBhY2Nlc3MgdG9rZW4iCgkJCQk6IHJlcy5zdGF0dXMgPT09IDQyOSA/ICJyYXRlIGxpbWl0IHJlYWNoZWQsIHRyeSBhZ2FpbiBpbiBhIG1pbnV0ZSIKCQkJCTogInJlcXVlc3QgZmFpbGVkIjsKCQkJdGhyb3cgbmV3IEVycm9yKGBSZWFkd2lzZSBBUEkgZXJyb3IgJHtyZXMuc3RhdHVzfTogJHtoaW50fS5gKTsKCQl9CgkJcmV0dXJuIGF3YWl0IHJlcy5qc29uKCk7Cgl9Cn0K"
		},
		{
			"kind": "template",
			"originalPath": "Templates/Book Notes.md",
			"contentEncoding": "base64",
			"content": "LS0tCmltYWdlOgp0YWdzOiBpbi9ib29rcwphbGlhc2VzOgogICAgLSAie3tWQUxVRTpCb29rIFRpdGxlfX0iCmNzc2NsYXNzOgotLS0KCiMgVGl0bGU6IFtbe3tUSVRMRX19XV0KCiMjIE1ldGFkYXRhCgpUYWdzOjoKVHlwZTo6IFtbQm9va11dCkF1dGhvcjo6IHt7VkFMVUU6YXV0aG9yfX0KUmVmZXJlbmNlOjoKUmF0aW5nOjoKUmV2aWV3ZWQgRGF0ZTo6IFtbe3tEQVRFOllZWVktTU0tREQgLSBkZGQgTU1NIER9fV1dCkZpbmlzaGVkIFllYXI6OiBbW3t7REFURTpZWVlZfX1dXQoKIyBUaG91Z2h0cwoKIyBBY3Rpb25zIFRha2VuIC8gQ2hhbmdlcwoKIyBTdW1tYXJ5IG9mIEtleSBQb2ludHMKCiMgSGlnaGxpZ2h0cyAmIE5vdGVzCgp7e01BQ1JPOlJlYWR3aXNlOjppbnN0YUZldGNoQm9va319Cg=="
		}
	]
}
