Ruby 解析凌乱的略读书签plist转换为xml

Ruby 解析凌乱的略读书签plist转换为xml,ruby,xml,pdf,Ruby,Xml,Pdf,我正在使用Skim pdf查看器 您可以通过下拉菜单搜索书签: 我在书中读到,Skim把它锁在一个plist中: ~/Library/Preferences/net.sourceforge.skim-app.skim.bookmarks.plist 因此,我通过以下方法将此文件转换为xml文件: 请参阅下面的完整转储 现在,我试图在不造成巨大混乱的情况下处理这个xml。我尝试过使用active\u support,并能够找到我的书签: [3] pry(main)> require 'a

我正在使用Skim pdf查看器

您可以通过下拉菜单搜索书签:

我在书中读到,Skim把它锁在一个plist中:

~/Library/Preferences/net.sourceforge.skim-app.skim.bookmarks.plist
因此,我通过以下方法将此文件转换为xml文件:

请参阅下面的完整转储

现在,我试图在不造成巨大混乱的情况下处理这个xml。我尝试过使用
active\u support
,并能够找到我的书签:

[3] pry(main)> require 'active_support/core_ext/hash/conversions'
=> true
[5] pry(main)> h = Hash.from_xml(File.read('bookmarks.plist'))
[39] pry(main)> h['plist']['dict']['array'].first['dict'].each {|h| puts "#{h['integer']} : #{h['string'].first}" }
0 : some info about foobar
386 : some important bookmark about migrations
389 : some important note about anatomy of migrations
158 : cat
有更好的办法吗

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>bookmarks</key>
    <array>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGaAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQIc29tZS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCW
            8dTPxIpQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0DUKAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIAQ1VudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAc29tZS5wZGYAAA4AEgAIAHMAbwBtAGUALgBw
            AGQAZgAPABIACABVAG4AdABpAHQAbABlAGQAEgA0VXNlcnMvbWF4
            L0Ryb3Bib3gvd29yay90bXAvcGRmbWluZXJfdGVzdGluZy9zb21l
            LnBkZgATAAEvAAAVAAIACv//AAA=
            </data>
            <key>label</key>
            <string>some info about foobar</string>
            <key>pageIndex</key>
            <integer>0</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAFOAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABZDB8JYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCb
            LdTPyHJQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAABi5U
            cmFzaAAQAAgAANRAiUUAAAARAAgAANTQOPIAAAABAAwAWQwfAAYs
            xQACZv0AAgAmVW50aXRsZWQ6VXNlcnM6AG1heDoALlRyYXNoOgBh
            Z2lsZS5wZGYADgAUAAkAYQBnAGkAbABlAC4AcABkAGYADwASAAgA
            VQBuAHQAaQB0AGwAZQBkABIAGlVzZXJzL21heC8uVHJhc2gvYWdp
            bGUucGRmABMAAS8AABUAAgAK//8AAA==
            </data>
            <key>label</key>
            <string>some important bookmark about migrations</string>
            <key>pageIndex</key>
            <integer>386</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAFOAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABZDB8JYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCb
            LdTPyHJQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAABi5U
            cmFzaAAQAAgAANRAiUUAAAARAAgAANTQOPIAAAABAAwAWQwfAAYs
            xQACZv0AAgAmVW50aXRsZWQ6VXNlcnM6AG1heDoALlRyYXNoOgBh
            Z2lsZS5wZGYADgAUAAkAYQBnAGkAbABlAC4AcABkAGYADwASAAgA
            VQBuAHQAaQB0AGwAZQBkABIAGlVzZXJzL21heC8uVHJhc2gvYWdp
            bGUucGRmABMAAS8AABUAAgAK//8AAA==
            </data>
            <key>label</key>
            <string>some important note about anatomy of migrations</string>
            <key>pageIndex</key>
            <integer>389</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGeAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQJYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDV
            PNTP2+YAAAAAAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0ExmAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIARFVudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAYWdpbGUucGRmAA4AFAAJAGEAZwBpAGwAZQAu
            AHAAZABmAA8AEgAIAFUAbgB0AGkAdABsAGUAZAASADVVc2Vycy9t
            YXgvRHJvcGJveC93b3JrL3RtcC9wZGZtaW5lcl90ZXN0aW5nL2Fn
            aWxlLnBkZgAAEwABLwAAFQACAAr//wAA
            </data>
            <key>label</key>
            <string>cat</string>
            <key>pageIndex</key>
            <integer>158</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
    </array>
    <key>recentDocuments</key>
    <array>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGeAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQJYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDV
            PNTP2+YAAAAAAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0ExmAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIARFVudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAYWdpbGUucGRmAA4AFAAJAGEAZwBpAGwAZQAu
            AHAAZABmAA8AEgAIAFUAbgB0AGkAdABsAGUAZAASADVVc2Vycy9t
            YXgvRHJvcGJveC93b3JrL3RtcC9wZGZtaW5lcl90ZXN0aW5nL2Fn
            aWxlLnBkZgAAEwABLwAAFQACAAr//wAA
            </data>
            <key>pageIndex</key>
            <integer>38</integer>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGaAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQIc29tZS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCW
            8dTPxIpQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0DUKAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIAQ1VudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAc29tZS5wZGYAAA4AEgAIAHMAbwBtAGUALgBw
            AGQAZgAPABIACABVAG4AdABpAHQAbABlAGQAEgA0VXNlcnMvbWF4
            L0Ryb3Bib3gvd29yay90bXAvcGRmbWluZXJfdGVzdGluZy9zb21l
            LnBkZgATAAEvAAAVAAIACv//AAA=
            </data>
            <key>pageIndex</key>
            <integer>0</integer>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAFOAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABZDB8JYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCb
            LdTPyHJQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAABi5U
            cmFzaAAQAAgAANRAiUUAAAARAAgAANTQOPIAAAABAAwAWQwfAAYs
            xQACZv0AAgAmVW50aXRsZWQ6VXNlcnM6AG1heDoALlRyYXNoOgBh
            Z2lsZS5wZGYADgAUAAkAYQBnAGkAbABlAC4AcABkAGYADwASAAgA
            VQBuAHQAaQB0AGwAZQBkABIAGlVzZXJzL21heC8uVHJhc2gvYWdp
            bGUucGRmABMAAS8AABUAAgAK//8AAA==
            </data>
            <key>pageIndex</key>
            <integer>393</integer>
        </dict>
    </array>
</dict>
</plist>

书签
_BDAlias
aaaaaaaaahvbnrpdgxlzaaaaaaaaaaaaaaaaaaaaaaadu
QCBVSCSAABWGNQIC29TZS5WZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HCW
8dtpxipkreygaaaap///8aaakgaaaaaaaaaaaaaaaaaaaehbk
ZM1PBMVYX3RLC3RPBMCAEAAIADUQILFAAAEQAAUIADU0DUKAAAA
AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAMB9AAIQ1VUDGL0BGVK
OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
ZXJfdGVzdGluZzoAc29tZS5wZGYAAA4AEgAIAHMAbwBtAGUALgBw
AGQAZGAPABIABACAVAG4ADABPAHQAABABLAGQAEGA0VXNLCNMVBWF4
L0Ryb3Bib3gvd29yay90bXAvcGRmbWluZXJfdGVzdGluZy9zb21l
LNBKZGAAEVAAAVAAICV//AAA=
标签
关于foobar的一些信息
当前页
0
类型
书签
_BDAlias
aaaaaaaaaaahvbnrpdgxlzaaaaaaaaaaaaaaaaaaaaaaadu
QCBVSCSAABZDB8JYWDPBGUCGRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HCB
ldtpyhjqreygaaaap///8aaakgaaaaaaaaaaaaaaaaaaabi5u
CMFZAAAQAAGAANRAIUAAAAAAAAAAGAANTQOPIAAABAWAWAWQWFAAYS
XQACZV0AAGAMVW50AXRSZWQ6VXNLCNM6AG1HEDOALLYXNOOGBH
Z2LSZS5WZGYADGAUAAKAYQBNAGKABABLAC4ACABKAGYADWASAGA
VQBUAHQAQB0AGWAZQBKABIAGLVZZXJZL21HEC8UVHJHC2GVYWDP
bGUucGRmABMAAS8AABUAAgAK//8AAA==
标签
关于迁移的一些重要书签
当前页
386
类型
书签
_BDAlias
aaaaaaaaaaahvbnrpdgxlzaaaaaaaaaaaaaaaaaaaaaaadu
QCBVSCSAABZDB8JYWDPBGUCGRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HCB
ldtpyhjqreygaaaap///8aaakgaaaaaaaaaaaaaaaaaaabi5u
CMFZAAAQAAGAANRAIUAAAAAAAAAAGAANTQOPIAAABAWAWAWQWFAAYS
XQACZV0AAGAMVW50AXRSZWQ6VXNLCNM6AG1HEDOALLYXNOOGBH
Z2LSZS5WZGYADGAUAAKAYQBNAGKABABLAC4ACABKAGYADWASAGA
VQBUAHQAQB0AGWAZQBKABIAGLVZZXJZL21HEC8UVHJHC2GVYWDP
bGUucGRmABMAAS8AABUAAgAK//8AAA==
标签
关于迁移解剖学的一些重要注意事项
当前页
389
类型
书签
_BDAlias
AAAAA GEAAIAAAHVBNRPDGXLZAAAAAAAAAAAAAAAAAAAAADU
QCBVSCSAABWGNQJYWDPBGUCGRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
PNTP2+yaaaaaap///8aakagaaaaaaaaaaaaaaaaaaaehbk
ZM1PBMVYX3RLC3RPBMCAEAAIADUQILFAAAEQAAUIADU0EXMAAAA
AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAMB9AARFVUDGL0BGVK
OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
ZXJfdGVzdGluZzoAYWdpbGUucGRmAA4AFAAJAGEAZwBpAGwAZQAu
AHAAZABMAA8AEGAAIFUAB0AGKADABSAGUAZAASAVC2VYCY9T
YXgvRHJvcGJveC93b3JrL3RtcC9wZGZtaW5lcl90ZXN0aW5nL2Fn
AWXLLNBKZGAAEWABLWAAFQAAR//wAA
标签
猫
当前页
158
类型
书签
近期文件
_BDAlias
AAAAA GEAAIAAAHVBNRPDGXLZAAAAAAAAAAAAAAAAAAAAADU
QCBVSCSAABWGNQJYWDPBGUCGRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
PNTP2+yaaaaaap///8aakagaaaaaaaaaaaaaaaaaaaehbk
ZM1PBMVYX3RLC3RPBMCAEAAIADUQILFAAAEQAAUIADU0EXMAAAA
AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAMB9AARFVUDGL0BGVK
OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
ZXJfdGVzdGluZzoAYWdpbGUucGRmAA4AFAAJAGEAZwBpAGwAZQAu
AHAAZABMAA8AEGAAIFUAB0AGKADABSAGUAZAASAVC2VYCY9T
YXgvRHJvcGJveC93b3JrL3RtcC9wZGZtaW5lcl90ZXN0aW5nL2Fn
AWXLLNBKZGAAEWABLWAAFQAAR//wAA
当前页
38
_BDAlias
aaaaaaaaahvbnrpdgxlzaaaaaaaaaaaaaaaaaaaaaaadu
QCBVSCSAABWGNQIC29TZS5WZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HCW
8dtpxipkreygaaaap///8aaakgaaaaaaaaaaaaaaaaaaaehbk
ZM1PBMVYX3RLC3RPBMCAEAAIADUQILFAAAEQAAUIADU0DUKAAAA
AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAMB9AAIQ1VUDGL0BGVK
OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
ZXJfdGVzdGluZzoAc29tZS5wZGYAAA4AEgAIAHMAbwBtAGUALgBw
AGQAZGAPABIABACAVAG4ADABPAHQAABABLAGQAEGA0VXNLCNMVBWF4
L0Ryb3Bib3gvd29yay90bXAvcGRmbWluZXJfdGVzdGluZy9zb21l
LNBKZGAAEVAAAVAAICV//AAA=
当前页
0
_BDAlias
aaaaaaaaaaahvbnrpdgxlzaaaaaaaaaaaaaaaaaaaaaaadu
QCBVSCSAABZDB8JYWDPBGUCGRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HCB
ldtpyhjqreygaaaap///8aaakgaaaaaaaaaaaaaaaaaaabi5u
CMFZAAAQAAGAANRAIUAAAAAAAAAAGAANTQOPIAAABAWAWAWQWFAAYS
XQACZV0AAGAMVW50AXRSZWQ6VXNLCNM6AG1HEDOALLYXNOOGBH
Z2LSZS5WZGYADGAUAAKAYQBNAGKABABLAC4ACABKAGYADWASAGA
VQB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>bookmarks</key>
    <array>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGaAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQIc29tZS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCW
            8dTPxIpQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0DUKAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIAQ1VudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAc29tZS5wZGYAAA4AEgAIAHMAbwBtAGUALgBw
            AGQAZgAPABIACABVAG4AdABpAHQAbABlAGQAEgA0VXNlcnMvbWF4
            L0Ryb3Bib3gvd29yay90bXAvcGRmbWluZXJfdGVzdGluZy9zb21l
            LnBkZgATAAEvAAAVAAIACv//AAA=
            </data>
            <key>label</key>
            <string>some info about foobar</string>
            <key>pageIndex</key>
            <integer>0</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAFOAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABZDB8JYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCb
            LdTPyHJQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAABi5U
            cmFzaAAQAAgAANRAiUUAAAARAAgAANTQOPIAAAABAAwAWQwfAAYs
            xQACZv0AAgAmVW50aXRsZWQ6VXNlcnM6AG1heDoALlRyYXNoOgBh
            Z2lsZS5wZGYADgAUAAkAYQBnAGkAbABlAC4AcABkAGYADwASAAgA
            VQBuAHQAaQB0AGwAZQBkABIAGlVzZXJzL21heC8uVHJhc2gvYWdp
            bGUucGRmABMAAS8AABUAAgAK//8AAA==
            </data>
            <key>label</key>
            <string>some important bookmark about migrations</string>
            <key>pageIndex</key>
            <integer>386</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAFOAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABZDB8JYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCb
            LdTPyHJQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAABi5U
            cmFzaAAQAAgAANRAiUUAAAARAAgAANTQOPIAAAABAAwAWQwfAAYs
            xQACZv0AAgAmVW50aXRsZWQ6VXNlcnM6AG1heDoALlRyYXNoOgBh
            Z2lsZS5wZGYADgAUAAkAYQBnAGkAbABlAC4AcABkAGYADwASAAgA
            VQBuAHQAaQB0AGwAZQBkABIAGlVzZXJzL21heC8uVHJhc2gvYWdp
            bGUucGRmABMAAS8AABUAAgAK//8AAA==
            </data>
            <key>label</key>
            <string>some important note about anatomy of migrations</string>
            <key>pageIndex</key>
            <integer>389</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGeAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQJYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDV
            PNTP2+YAAAAAAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0ExmAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIARFVudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAYWdpbGUucGRmAA4AFAAJAGEAZwBpAGwAZQAu
            AHAAZABmAA8AEgAIAFUAbgB0AGkAdABsAGUAZAASADVVc2Vycy9t
            YXgvRHJvcGJveC93b3JrL3RtcC9wZGZtaW5lcl90ZXN0aW5nL2Fn
            aWxlLnBkZgAAEwABLwAAFQACAAr//wAA
            </data>
            <key>label</key>
            <string>cat</string>
            <key>pageIndex</key>
            <integer>158</integer>
            <key>type</key>
            <string>bookmark</string>
        </dict>
    </array>
    <key>recentDocuments</key>
    <array>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGeAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQJYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDV
            PNTP2+YAAAAAAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0ExmAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIARFVudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAYWdpbGUucGRmAA4AFAAJAGEAZwBpAGwAZQAu
            AHAAZABmAA8AEgAIAFUAbgB0AGkAdABsAGUAZAASADVVc2Vycy9t
            YXgvRHJvcGJveC93b3JrL3RtcC9wZGZtaW5lcl90ZXN0aW5nL2Fn
            aWxlLnBkZgAAEwABLwAAFQACAAr//wAA
            </data>
            <key>pageIndex</key>
            <integer>38</integer>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAGaAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABwgnQIc29tZS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCW
            8dTPxIpQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAEHBk
            Zm1pbmVyX3Rlc3RpbmcAEAAIAADUQIlFAAAAEQAIAADU0DUKAAAA
            AQAYAHCCdAAPmYwAD5dgAA+WSAAGLMUAAmb9AAIAQ1VudGl0bGVk
            OlVzZXJzOgBtYXg6AERyb3Bib3g6AHdvcms6AHRtcDoAcGRmbWlu
            ZXJfdGVzdGluZzoAc29tZS5wZGYAAA4AEgAIAHMAbwBtAGUALgBw
            AGQAZgAPABIACABVAG4AdABpAHQAbABlAGQAEgA0VXNlcnMvbWF4
            L0Ryb3Bib3gvd29yay90bXAvcGRmbWluZXJfdGVzdGluZy9zb21l
            LnBkZgATAAEvAAAVAAIACv//AAA=
            </data>
            <key>pageIndex</key>
            <integer>0</integer>
        </dict>
        <dict>
            <key>_BDAlias</key>
            <data>
            AAAAAAFOAAIAAAhVbnRpdGxlZAAAAAAAAAAAAAAAAAAAAAAAAADU
            QCbVSCsAAABZDB8JYWdpbGUucGRmAAAAAAAAAAAAAAAAAAAAAAAA
            AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCb
            LdTPyHJQREYgAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAABi5U
            cmFzaAAQAAgAANRAiUUAAAARAAgAANTQOPIAAAABAAwAWQwfAAYs
            xQACZv0AAgAmVW50aXRsZWQ6VXNlcnM6AG1heDoALlRyYXNoOgBh
            Z2lsZS5wZGYADgAUAAkAYQBnAGkAbABlAC4AcABkAGYADwASAAgA
            VQBuAHQAaQB0AGwAZQBkABIAGlVzZXJzL21heC8uVHJhc2gvYWdp
            bGUucGRmABMAAS8AABUAAgAK//8AAA==
            </data>
            <key>pageIndex</key>
            <integer>393</integer>
        </dict>
    </array>
</dict>
</plist>