1
1
mirror of https://github.com/wader/fq.git synced 2024-12-22 21:01:37 +03:00

Merge pull request #527 from dgmcdona/apple_package

decode: add ns_keyed_archiver, restructure apple decoders into package
This commit is contained in:
Mattias Wadman 2022-12-19 22:47:29 +01:00 committed by GitHub
commit 6f354bb350
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
70 changed files with 1213 additions and 351 deletions

View File

@ -390,6 +390,8 @@ $ fq 'torepr.SomeTimeStamp | todescription' Info.plist
### Get JSON representation
`bplist` files can be converted to a JSON representation using the `torepr` filter:
```sh
$ fq torepr com.apple.UIAutomation.plist
{
@ -397,6 +399,28 @@ $ fq torepr com.apple.UIAutomation.plist
}
```
### Decoding NSKeyedArchiver serialized objects
A common way that Swift and Objective-C libraries on macOS serialize objects
is through the NSKeyedArchiver API, which flattens objects into a list of elements
and class descriptions that are reconstructed into an object graph using CFUID
elements in the property list. `fq` includes a function, `from_ns_keyed_archiver`,
which will rebuild this object graph into a friendly representation.
If no parameters are supplied, it will assume that there is a CFUID located at
`."$top".root` that specifies the root from which decoding should occur. If this
is not present, an error will be produced, asking the user to specify a root
object in the `.$objects` list from which to decode.
The following examples show how this might be used (in this case, within the `fq` REPL):
```
# Assume $top.root is present
bplist> from_ns_keyed_archiver
# Specify optional root
bplist> from_ns_keyed_archiver(1)
```
### Authors
- David McDonald
[@dgmcdona](https://github.com/dgmcdona)

View File

@ -5,7 +5,9 @@ package all
import (
_ "github.com/wader/fq/format/ape"
_ "github.com/wader/fq/format/applebookmark"
_ "github.com/wader/fq/format/apple/bookmark"
_ "github.com/wader/fq/format/apple/bplist"
_ "github.com/wader/fq/format/apple/macho"
_ "github.com/wader/fq/format/ar"
_ "github.com/wader/fq/format/asn1"
_ "github.com/wader/fq/format/av1"
@ -13,7 +15,6 @@ import (
_ "github.com/wader/fq/format/bencode"
_ "github.com/wader/fq/format/bitcoin"
_ "github.com/wader/fq/format/bits"
_ "github.com/wader/fq/format/bplist"
_ "github.com/wader/fq/format/bson"
_ "github.com/wader/fq/format/bzip2"
_ "github.com/wader/fq/format/cbor"
@ -30,7 +31,6 @@ import (
_ "github.com/wader/fq/format/inet"
_ "github.com/wader/fq/format/jpeg"
_ "github.com/wader/fq/format/json"
_ "github.com/wader/fq/format/macho"
_ "github.com/wader/fq/format/markdown"
_ "github.com/wader/fq/format/math"
_ "github.com/wader/fq/format/matroska"

View File

@ -1,10 +1,11 @@
package applebookmark
package bookmarkdata
import (
"embed"
"time"
"github.com/wader/fq/format"
"github.com/wader/fq/format/apple"
"github.com/wader/fq/pkg/decode"
"github.com/wader/fq/pkg/interp"
"github.com/wader/fq/pkg/scalar"
@ -299,32 +300,12 @@ const (
dictEntrySize = 4
)
type posLoopDetector []int64
func (pld *posLoopDetector) push(i int64, detect func()) {
for _, o := range *pld {
if i == o {
detect()
}
}
*pld = append(*pld, i)
}
func (pld *posLoopDetector) pop() {
*pld = (*pld)[:len(*pld)-1]
}
func (pld *posLoopDetector) pushAndPop(i int64, detect func()) func() {
pld.push(i, detect)
return pld.pop
}
func makeDecodeRecord() func(d *decode.D) {
var pld posLoopDetector
var pld apple.PosLoopDetector[int64]
var decodeRecord func(d *decode.D)
decodeRecord = func(d *decode.D) {
defer pld.pushAndPop(
defer pld.PushAndPop(
d.Pos(),
func() { d.Fatalf("infinite recursion detected in record decode function") },
)()

View File

@ -7,12 +7,13 @@ import (
"time"
"github.com/wader/fq/format"
"github.com/wader/fq/format/apple"
"github.com/wader/fq/pkg/decode"
"github.com/wader/fq/pkg/interp"
"github.com/wader/fq/pkg/scalar"
)
//go:embed bplist.jq bplist.md
//go:embed bplist.jq bplist.md ns_keyed_archiver.jq
var bplistFS embed.FS
func init() {
@ -185,26 +186,6 @@ func decodeItem(d *decode.D, p *plist) bool {
return false
}
type indexStack []uint64
func (i *indexStack) pop() {
*i = (*i)[:len(*i)-1]
}
func (i *indexStack) push(idx uint64, handler func()) {
for _, v := range *i {
if v == idx {
handler()
}
}
*i = append(*i, idx)
}
func (i *indexStack) pushAndPop(idx uint64, handler func()) func() {
i.push(idx, handler)
return i.pop
}
// decodeReference looks up and decodes an object based on its index in the
// offset table. Returns a bool indicating whether or not the decoded item is
// a string (necessary for checking dictionary key validity).
@ -216,7 +197,7 @@ func (pl *plist) decodeReference(d *decode.D, idx uint64) bool {
}
pl.consumed[idx] = true
defer pl.idxStack.pushAndPop(idx, func() { d.Fatalf("infinite recursion detected") })()
defer pl.pld.PushAndPop(idx, func() { d.Fatalf("infinite recursion detected") })()
itemOffset := pl.o[idx]
if itemOffset >= pl.t.offsetTableStart {
@ -243,7 +224,7 @@ type plist struct {
t trailer
o []uint64
consumed map[uint64]bool
idxStack indexStack
pld apple.PosLoopDetector[uint64]
}
func bplistDecode(d *decode.D, _ any) any {

View File

@ -7,7 +7,7 @@ def _bplist_torepr:
elif .type == "data" then .value | tovalue
elif .type == "ascii_string" then .value | tovalue
elif .type == "unicode_string" then .value | tovalue
elif .type == "uid" then .value | tovalue
elif .type == "uid" then {"cfuid": .value | tovalue}
elif .type == "array" then
( .entries
| map(_f)

View File

@ -0,0 +1,61 @@
### Show full decoding
```sh
$ fq d Info.plist
```
### Timestamps
Timestamps in Apple Binary Property Lists are encoded as Cocoa Core Data
timestamps, where the raw value is the floating point number of seconds since
January 1, 2001. By default, `fq` will render the raw floating point value. In
order to get the raw value or string description, use the `todescription`
function, you can use the `tovalue` and `todescription` functions:
```sh
$ fq 'torepr.SomeTimeStamp | tovalue' Info.plist
685135328
$ fq 'torepr.SomeTimeStamp | todescription' Info.plist
"2022-09-17T19:22:08Z"
```
### Get JSON representation
`bplist` files can be converted to a JSON representation using the `torepr` filter:
```sh
$ fq torepr com.apple.UIAutomation.plist
{
"UIAutomationEnabled": true
}
```
### Decoding NSKeyedArchiver serialized objects
A common way that Swift and Objective-C libraries on macOS serialize objects
is through the NSKeyedArchiver API, which flattens objects into a list of elements
and class descriptions that are reconstructed into an object graph using CFUID
elements in the property list. `fq` includes a function, `from_ns_keyed_archiver`,
which will rebuild this object graph into a friendly representation.
If no parameters are supplied, it will assume that there is a CFUID located at
`."$top".root` that specifies the root from which decoding should occur. If this
is not present, an error will be produced, asking the user to specify a root
object in the `.$objects` list from which to decode.
The following examples show how this might be used (in this case, within the `fq` REPL):
```
# Assume $top.root is present
bplist> from_ns_keyed_archiver
# Specify optional root
bplist> from_ns_keyed_archiver(1)
```
### Authors
- David McDonald
[@dgmcdona](https://github.com/dgmcdona)
### References
- http://fileformats.archiveteam.org/wiki/Property_List/Binary
- https://medium.com/@karaiskc/understanding-apples-binary-property-list-format-281e6da00dbd
- https://opensource.apple.com/source/CF/CF-550/CFBinaryPList.c

View File

@ -0,0 +1,73 @@
def from_ns_keyed_archiver($root):
if _exttype == "decode_value" and format == "bplist" then _bplist_torepr end
| (
. as {
"$objects": $objects
}
| def _f($id; $seen_ids):
def _r($id):
if $seen_ids | has("\($id)") then "cycle-\($id)"
else _f($id; $seen_ids | ."\($id)" = true)
end;
( $objects[$id]
| type as $type |
if $type == "string" and . == "$null" then null
elif $type |
. == "number"
or . == "boolean"
or . == "null"
or . == "string" then .
elif $type == "array" then . # TODO: does this happen?
elif $type == "object" then
( ."$class" as $class
| if $class == null then # TODO: what case is this?
with_entries(
if (.value | type == "object")
and (.value | has("cfuid"))
then .value |= _r(.cfuid) end
)
else
( $objects[$class.cfuid]."$classname" as $cname
| if $cname == "NSDictionary"
or $cname == "NSMutableDictionary" then
# transform arrays [key_id1, key_id2,...] and [obj_id1, obj_id2,..] into {key: obj, ...}
( [."NS.keys", ."NS.objects"]
| transpose
| map({key: _r(.[0].cfuid), value: _r(.[1].cfuid)})
| from_entries
)
elif $cname == "NSArray"
or $cname == "NSMutableArray"
or $cname == "NSSet"
or $cname == "NSMutableSet" then
( ."NS.objects"
| map(_r(.cfuid))
)
elif $cname == "NSData" or $cname == "NSMutableData" then ."NS.Data"
elif $cname == "NSDate" then "NS.time"
elif $cname == "NSNull" then null
elif $cname == "NSAttributedString"
or $cname == "NSMutableAttributedString" then
_r(.NSString.cfuid)
elif $cname == "NSUUID" then ."NS.uuidbytes"
else
# replace class ID with classname, and dereference all cfuid values.
."$class" = $cname |
with_entries(
if (.value | type == "object")
and (.value | has("cfuid"))
then .value |= _r(.cfuid) end
)
end
)
end
)
end
);
def _f($id): _f($id; {"\($id)": true});
_f($root)
);
def from_ns_keyed_archiver:
if _exttype == "decode_value" and format == "bplist" then _bplist_torepr end
| from_ns_keyed_archiver(."$top"?.root?.cfuid // error("root node not found, must specify root ID"));

View File

@ -2756,48 +2756,102 @@ $ fq torepr recentapps.sfl2
"$objects": [
"$null",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
2,
3
{
"cfuid": 2
},
{
"cfuid": 3
}
],
"NS.objects": [
4,
63
{
"cfuid": 4
},
{
"cfuid": 63
}
]
},
"items",
"properties",
{
"$class": 62,
"$class": {
"cfuid": 62
},
"NS.objects": [
5,
17,
22,
27,
32,
37,
42,
47,
52,
57
{
"cfuid": 5
},
{
"cfuid": 17
},
{
"cfuid": 22
},
{
"cfuid": 27
},
{
"cfuid": 32
},
{
"cfuid": 37
},
{
"cfuid": 42
},
{
"cfuid": 47
},
{
"cfuid": 52
},
{
"cfuid": 57
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
12,
14,
15,
16
{
"cfuid": 11
},
{
"cfuid": 12
},
{
"cfuid": 14
},
{
"cfuid": 15
},
{
"cfuid": 16
}
]
},
"visibility",
@ -2807,7 +2861,9 @@ $ fq torepr recentapps.sfl2
"uuid",
0,
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2822,24 +2878,48 @@ $ fq torepr recentapps.sfl2
"book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\t\u0000\u0000\u0000\u0001\u0001\u0000\u0000Utilities\u0000\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Terminal.app\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000H\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd#\u0007\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd-\u0007\u0000\ufffd\ufffd\ufffd\u000f\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000t\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffdt\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\b\u0000\u0000\u0000\u0001\u0001\u0000\u0000Terminal\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000\\\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\f\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000@\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000 \u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u00000\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"F1931D2B-CEEF-4EC5-A7EB-68D5F66B4619",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
18,
19,
20,
21
{
"cfuid": 11
},
{
"cfuid": 18
},
{
"cfuid": 19
},
{
"cfuid": 20
},
{
"cfuid": 21
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2847,24 +2927,48 @@ $ fq torepr recentapps.sfl2
"bookT\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\\\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u000b\u0000\u0000\u0000\u0001\u0001\u0000\u0000Spotify.app\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0018\ufffd\u0003\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000H\u0000\u0000\u0000X\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd\ufffd\u0015\r\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0007\u0000\u0000\u0000\u0001\u0001\u0000\u0000Spotify\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u00008\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000h\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u00008\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0018\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000L\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"69ECD287-A17F-4392-85F6-F99068CF2431",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
23,
24,
25,
26
{
"cfuid": 11
},
{
"cfuid": 23
},
{
"cfuid": 24
},
{
"cfuid": 25
},
{
"cfuid": 26
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2872,24 +2976,48 @@ $ fq torepr recentapps.sfl2
"book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u000e\u0000\u0000\u0000\u0001\u0001\u0000\u0000Calculator.app\u0000\u0000\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000o!\u0007\u0000\ufffd\ufffd\ufffd\u000f\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000`\u0000\u0000\u0000p\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd\"\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\n\u0000\u0000\u0000\u0001\u0001\u0000\u0000Calculator\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000L\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000d\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\u0018\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\b\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000p\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000x\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000p\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"9D8A608D-6980-46C2-BDD0-F36E0ADEFFDD",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
28,
29,
30,
31
{
"cfuid": 11
},
{
"cfuid": 28
},
{
"cfuid": 29
},
{
"cfuid": 30
},
{
"cfuid": 31
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2897,24 +3025,48 @@ $ fq torepr recentapps.sfl2
"book|\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u000b\u0000\u0000\u0000\u0001\u0001\u0000\u0000Preview.app\u0000\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffdp\u0007\u0000\ufffd\ufffd\ufffd\u000f\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\\\u0000\u0000\u0000l\u0000\u0000\u0000|\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd6\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0007\u0000\u0000\u0000\u0001\u0001\u0000\u0000Preview\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000H\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000`\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\u0014\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\u0004\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000@\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000t\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CC4B1A36-0F69-4023-B2F7-6FDCF8D28BE1",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
33,
34,
35,
36
{
"cfuid": 11
},
{
"cfuid": 33
},
{
"cfuid": 34
},
{
"cfuid": 35
},
{
"cfuid": 36
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2922,24 +3074,48 @@ $ fq torepr recentapps.sfl2
"book\\\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000d\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\r\u0000\u0000\u0000\u0001\u0001\u0000\u0000Alacritty.app\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd\ufffd\u0003\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000L\u0000\u0000\u0000\\\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd\ufffd~\ufffd\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\t\u0000\u0000\u0000\u0001\u0001\u0000\u0000Alacritty\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000<\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000l\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000|\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000<\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u001c\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000P\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"AACD34F8-443C-42E8-896E-B33394D81A2F",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
38,
39,
40,
41
{
"cfuid": 11
},
{
"cfuid": 38
},
{
"cfuid": 39
},
{
"cfuid": 40
},
{
"cfuid": 41
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2947,24 +3123,48 @@ $ fq torepr recentapps.sfl2
"bookt\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u0019\u0000\u0000\u0000\u0001\u0001\u0000\u0000DB Browser for SQLite.app\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000M\ufffd\u0005\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000X\u0000\u0000\u0000h\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd#\ufffd\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0015\u0000\u0000\u0000\u0001\u0001\u0000\u0000DB Browser for SQLite\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000H\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000(\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000T\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\\\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000T\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"B82BDA8C-A2EC-42DD-BE74-D0E0D4066BD6",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
43,
44,
45,
46
{
"cfuid": 11
},
{
"cfuid": 43
},
{
"cfuid": 44
},
{
"cfuid": 45
},
{
"cfuid": 46
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2972,24 +3172,48 @@ $ fq torepr recentapps.sfl2
"book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u0016\u0000\u0000\u0000\u0001\u0001\u0000\u0000System Preferences.app\u0000\u0000\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u00004\ufffd\u0007\u0000\ufffd\ufffd\ufffd\u000f\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000h\u0000\u0000\u0000x\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffdP\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0012\u0000\u0000\u0000\u0001\u0001\u0000\u0000System Preferences\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000T\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000 \u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\u0010\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000L\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000x\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000x\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CA78CBE9-086D-4ED9-931E-8F58C26134ED",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
48,
49,
50,
51
{
"cfuid": 11
},
{
"cfuid": 48
},
{
"cfuid": 49
},
{
"cfuid": 50
},
{
"cfuid": 51
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -2997,24 +3221,48 @@ $ fq torepr recentapps.sfl2
"book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\u0007\u0000\u0000\u0000\u0001\u0001\u0000\u0000Library\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000CoreServices\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u0015\u0000\u0000\u0000\u0001\u0001\u0000\u0000Directory Utility.app\u0000\u0000\u0000\u0014\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00000\u0000\u0000\u0000D\u0000\u0000\u0000X\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffdY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0016\ufffd\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u00004x\u0001\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000k\ufffd\u0001\u0000\ufffd\ufffd\ufffd\u000f\u0014\u0000\u0000\u0000\u0001\u0006\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0011\u0000\u0000\u0000\u0001\u0001\u0000\u0000Directory Utility\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\u0010\u0001\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u00000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000@\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000t\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000T\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000d\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"166FABD9-8163-4779-B0CB-090B048FBCD5",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
53,
54,
55,
56
{
"cfuid": 11
},
{
"cfuid": 53
},
{
"cfuid": 54
},
{
"cfuid": 55
},
{
"cfuid": 56
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -3022,24 +3270,48 @@ $ fq torepr recentapps.sfl2
"book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\t\u0000\u0000\u0000\u0001\u0001\u0000\u0000Utilities\u0000\u0000\u0000\u0014\u0000\u0000\u0000\u0001\u0001\u0000\u0000Activity Monitor.app\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000H\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd#\u0007\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"P\u0007\u0000\ufffd\ufffd\ufffd\u000f\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000|\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0010\u0000\u0000\u0000\u0001\u0001\u0000\u0000Activity Monitor\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000d\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\u0004\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\u0014\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000(\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u00008\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000t\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CF64AF62-9577-441B-9C58-CDA711616281",
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
6,
7,
8,
9,
10
{
"cfuid": 6
},
{
"cfuid": 7
},
{
"cfuid": 8
},
{
"cfuid": 9
},
{
"cfuid": 10
}
],
"NS.objects": [
11,
58,
59,
60,
61
{
"cfuid": 11
},
{
"cfuid": 58
},
{
"cfuid": 59
},
{
"cfuid": 60
},
{
"cfuid": 61
}
]
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [],
"NS.objects": []
},
@ -3054,19 +3326,105 @@ $ fq torepr recentapps.sfl2
"$classname": "NSArray"
},
{
"$class": 13,
"$class": {
"cfuid": 13
},
"NS.keys": [
64
{
"cfuid": 64
}
],
"NS.objects": [
65
{
"cfuid": 65
}
]
},
"com.apple.LSSharedFileList.MaxAmount",
10
],
"$top": {
"root": 1
"root": {
"cfuid": 1
}
},
"$version": 100000
}
$ fq 'torepr | from_ns_keyed_archiver' recentapps.sfl2
{
"items": [
{
"Bookmark": "book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\t\u0000\u0000\u0000\u0001\u0001\u0000\u0000Utilities\u0000\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Terminal.app\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000H\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd#\u0007\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd-\u0007\u0000\ufffd\ufffd\ufffd\u000f\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000t\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffdt\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\b\u0000\u0000\u0000\u0001\u0001\u0000\u0000Terminal\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000\\\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\f\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000@\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000 \u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u00000\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Terminal",
"uuid": "F1931D2B-CEEF-4EC5-A7EB-68D5F66B4619",
"visibility": 0
},
{
"Bookmark": "bookT\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\\\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u000b\u0000\u0000\u0000\u0001\u0001\u0000\u0000Spotify.app\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0018\ufffd\u0003\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000H\u0000\u0000\u0000X\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd\ufffd\u0015\r\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0007\u0000\u0000\u0000\u0001\u0001\u0000\u0000Spotify\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u00008\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000h\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u00008\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0018\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000L\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Spotify",
"uuid": "69ECD287-A17F-4392-85F6-F99068CF2431",
"visibility": 0
},
{
"Bookmark": "book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u000e\u0000\u0000\u0000\u0001\u0001\u0000\u0000Calculator.app\u0000\u0000\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000o!\u0007\u0000\ufffd\ufffd\ufffd\u000f\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000`\u0000\u0000\u0000p\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd\"\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\n\u0000\u0000\u0000\u0001\u0001\u0000\u0000Calculator\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000L\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000d\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\u0018\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\b\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000p\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000x\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000p\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Calculator",
"uuid": "9D8A608D-6980-46C2-BDD0-F36E0ADEFFDD",
"visibility": 0
},
{
"Bookmark": "book|\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u000b\u0000\u0000\u0000\u0001\u0001\u0000\u0000Preview.app\u0000\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffdp\u0007\u0000\ufffd\ufffd\ufffd\u000f\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\\\u0000\u0000\u0000l\u0000\u0000\u0000|\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd6\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0007\u0000\u0000\u0000\u0001\u0001\u0000\u0000Preview\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000H\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000`\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\u0014\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\u0004\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000@\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000t\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Preview",
"uuid": "CC4B1A36-0F69-4023-B2F7-6FDCF8D28BE1",
"visibility": 0
},
{
"Bookmark": "book\\\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000d\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\r\u0000\u0000\u0000\u0001\u0001\u0000\u0000Alacritty.app\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd\ufffd\u0003\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000L\u0000\u0000\u0000\\\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd\ufffd~\ufffd\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\t\u0000\u0000\u0000\u0001\u0001\u0000\u0000Alacritty\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000<\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000l\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000|\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000<\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u001c\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000P\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Alacritty",
"uuid": "AACD34F8-443C-42E8-896E-B33394D81A2F",
"visibility": 0
},
{
"Bookmark": "bookt\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000|\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u0019\u0000\u0000\u0000\u0001\u0001\u0000\u0000DB Browser for SQLite.app\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000M\ufffd\u0005\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000X\u0000\u0000\u0000h\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd#\ufffd\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0015\u0000\u0000\u0000\u0001\u0001\u0000\u0000DB Browser for SQLite\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000H\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000(\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000T\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\\\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000T\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "DB Browser for SQLite",
"uuid": "B82BDA8C-A2EC-42DD-BE74-D0E0D4066BD6",
"visibility": 0
},
{
"Bookmark": "book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u0016\u0000\u0000\u0000\u0001\u0001\u0000\u0000System Preferences.app\u0000\u0000\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u00004\ufffd\u0007\u0000\ufffd\ufffd\ufffd\u000f\f\u0000\u0000\u0000\u0001\u0006\u0000\u0000h\u0000\u0000\u0000x\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffdP\u0000\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0012\u0000\u0000\u0000\u0001\u0001\u0000\u0000System Preferences\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000T\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000l\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000 \u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\u0010\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000L\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000x\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000x\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "System Preferences",
"uuid": "CA78CBE9-086D-4ED9-931E-8F58C26134ED",
"visibility": 0
},
{
"Bookmark": "book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\u0007\u0000\u0000\u0000\u0001\u0001\u0000\u0000Library\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000CoreServices\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\u0015\u0000\u0000\u0000\u0001\u0001\u0000\u0000Directory Utility.app\u0000\u0000\u0000\u0014\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00000\u0000\u0000\u0000D\u0000\u0000\u0000X\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffdY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0016\ufffd\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u00004x\u0001\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000k\ufffd\u0001\u0000\ufffd\ufffd\ufffd\u000f\u0014\u0000\u0000\u0000\u0001\u0006\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0011\u0000\u0000\u0000\u0001\u0001\u0000\u0000Directory Utility\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\u0010\u0001\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u00000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000@\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000t\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000T\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000d\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Directory Utility",
"uuid": "166FABD9-8163-4779-B0CB-090B048FBCD5",
"visibility": 0
},
{
"Bookmark": "book\ufffd\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000System\u0000\u0000\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\t\u0000\u0000\u0000\u0001\u0001\u0000\u0000Utilities\u0000\u0000\u0000\u0014\u0000\u0000\u0000\u0001\u0001\u0000\u0000Activity Monitor.app\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000 \u0000\u0000\u00004\u0000\u0000\u0000H\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000wY\u0000\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"\ufffd\u0006\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\ufffd#\u0007\u0000\ufffd\ufffd\ufffd\u000f\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\"P\u0007\u0000\ufffd\ufffd\ufffd\u000f\u0010\u0000\u0000\u0000\u0001\u0006\u0000\u0000|\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdE\ufffd\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0010\u0000\u0000\u0000\u0001\u0001\u0000\u0000Activity Monitor\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u0000d\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\u0004\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\u0014\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000H\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000(\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u00008\u0001\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000t\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Activity Monitor",
"uuid": "CF64AF62-9577-441B-9C58-CDA711616281",
"visibility": 0
},
{
"Bookmark": "bookT\u0002\u0000\u0000\u0000\u0000\u0004\u00100\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\\\u0001\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0003\u0000\u0000\u0000\u0000\u0000 \f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Applications\n\u0000\u0000\u0000\u0001\u0001\u0000\u0000Safari.app\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000\u0010\u0000\u0000\u0000$\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000KS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000NS\u0000\u0000\u0003\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\u0006\u0000\u0000H\u0000\u0000\u0000X\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffd\u007f$\ufffd\ufffd\u0000\u0000\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\u0012\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001f\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0002\u0000\u0000\u0000\u0000\u0000\u0000\b\u0000\u0000\u0000\u0001\t\u0000\u0000file:///\f\u0000\u0000\u0000\u0001\u0001\u0000\u0000Macintosh HD\b\u0000\u0000\u0000\u0004\u0003\u0000\u0000\u0000`\u007f\ufffd\t\u0000\u0000\u0000\b\u0000\u0000\u0000\u0000\u0004\u0000\u0000A\ufffdy\ufffd9R\ufffd\u000e$\u0000\u0000\u0000\u0001\u0001\u0000\u00000A81F3B1-51D9-3335-B3E3-169C3640360D\u0018\u0000\u0000\u0000\u0001\u0002\u0000\u0000\ufffd\u0000\u0000\u0000\u0001\u0000\u0000\u0000\ufffd\u0013\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0001\u0000\u0000/\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0005\u0000\u0000\u0006\u0000\u0000\u0000\u0001\u0001\u0000\u0000Safari\u0000\u0000\ufffd\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000\u0004\u0010\u0000\u00008\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0005\u0010\u0000\u0000h\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0010\u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000@\u0010\u0000\u0000x\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002 \u0000\u00008\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0005 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013 \u0000\u0000\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0018\u0001\u0000\u0000\u0000\u0000\u0000\u00000 \u0000\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0010\ufffd\u0000\u0000\u0004\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0017\ufffd\u0000\u0000L\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u000f\u0000D\u0001\u0000\u0000\u0000\u0000\u0000\u0000",
"CustomItemProperties": {},
"Name": "Safari",
"uuid": "8A9841D6-A33D-468A-BA0B-4FADD9017F58",
"visibility": 0
}
],
"properties": {
"com.apple.LSSharedFileList.MaxAmount": 10
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,33 @@
package apple
import (
"golang.org/x/exp/constraints"
)
// PosLoopDetector is used for detecting loops when writing decoders, and can
// short-circuit infinite recursion that can cause stack overflows.
type PosLoopDetector[T constraints.Integer] []T
// Push adds the current offset to the stack and executes the supplied
// detection function
func (pld *PosLoopDetector[T]) Push(offset T, detect func()) {
for _, o := range *pld {
if offset == o {
detect()
}
}
*pld = append(*pld, offset)
}
// Pop removes the most recently added offset from the stack.
func (pld *PosLoopDetector[T]) Pop() {
*pld = (*pld)[:len(*pld)-1]
}
// PushAndPop adds the current offset to the stack, executes the supplied
// detection function, and returns the Pop method. A good usage of this is to
// pair this method call with a defer statement.
func (pld *PosLoopDetector[T]) PushAndPop(offset T, detect func()) func() {
pld.Push(offset, detect)
return pld.Pop
}

View File

@ -1,37 +0,0 @@
### Show full decoding
```sh
$ fq d Info.plist
```
### Timestamps
Timestamps in Apple Binary Property Lists are encoded as Cocoa Core Data
timestamps, where the raw value is the floating point number of seconds since
January 1, 2001. By default, `fq` will render the raw floating point value. In
order to get the raw value or string description, use the `todescription`
function, you can use the `tovalue` and `todescription` functions:
```sh
$ fq 'torepr.SomeTimeStamp | tovalue' Info.plist
685135328
$ fq 'torepr.SomeTimeStamp | todescription' Info.plist
"2022-09-17T19:22:08Z"
```
### Get JSON representation
```sh
$ fq torepr com.apple.UIAutomation.plist
{
"UIAutomationEnabled": true
}
```
### Authors
- David McDonald
[@dgmcdona](https://github.com/dgmcdona)
### References
- http://fileformats.archiveteam.org/wiki/Property_List/Binary
- https://medium.com/@karaiskc/understanding-apples-binary-property-list-format-281e6da00dbd
- https://opensource.apple.com/source/CF/CF-550/CFBinaryPList.c