Refactor of Xcode to allow specification of iOS simulators (#1)

* Refactor Xcode recipe into resource and remove related attributes
* Incorporate simulator installs into Xcode
* Add Xcode helper module for resource
* Bump version to 0.8
* Remove BGInfo recipe and test
* Add example data bag
* Add Apple Remote Desktop and defaults resource examples
* Update README.md
* Update metadata.rb
* Update maintainer_email to Microsoft Chef
* Extract Xcode and simulator versions to node attributes
This commit is contained in:
Eammon Hanlon 2017-10-10 12:42:07 -07:00 коммит произвёл GitHub
Родитель b5b43f2951
Коммит b3f1ee5ef8
30 изменённых файлов: 180 добавлений и 3181 удалений

Просмотреть файл

@ -24,7 +24,7 @@ deploy = "chef exec kitchen converge"
smoke = "chef exec kitchen verify"
# The functional phase is optional, you can define it by uncommenting
# the line below and running the command: `delivery local functional`
# functional = ""
functional = "echo No functional tests found."
cleanup = "chef exec kitchen destroy"
# Remote project.toml file

1
.gitignore поставляемый
Просмотреть файл

@ -6,6 +6,7 @@
*.un~
# Bundler
Gemfile
Gemfile.lock
bin/*
.bundle/*

Просмотреть файл

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<codeStyleSettings language="ruby">
<option name="INDENT_WHEN_CASES" value="false" />
<option name="ALIGN_GROUP_FIELD_DECLARATIONS" value="true" />
<option name="SPACE_WITHIN_BRACES" value="true" />
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
</codeStyleSettings>
</value>
</option>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</component>
</project>

Просмотреть файл

@ -1,17 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AnonymousGroup" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="BashReplaceWithBackquote" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="BashReplaceWithSubshell" enabled="true" level="INFO" enabled_by_default="true" />
<inspection_tool class="BashWrapWord" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="CookbookSourceRoot" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="FoodcriticInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="RubyConvertAllHashesInFileInspections" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>

Просмотреть файл

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="RUBY_MODULE" version="4">
<component name="ModuleRunConfigurationManager">
<shared />
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$" type="cookbooks-root" />
<sourceFolder url="file://$MODULE_DIR$/.delivery/build_cookbook" type="cookbooks-root" />
</content>
<orderEntry type="jdk" jdkName="Chef DK: /opt/chefdk" jdkType="RUBY_SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Просмотреть файл

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="rbenv: 2.4.1" project-jdk-type="RUBY_SDK" />
</project>

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/macos-cookbook.iml" filepath="$PROJECT_DIR$/.idea/macos-cookbook.iml" />
</modules>
</component>
</project>

Просмотреть файл

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

Просмотреть файл

@ -1,32 +0,0 @@
---
driver:
name: vagrant
provider: parallels
customize:
memory: 8192
cpus: 2
provisioner:
name: chef_zero
# You may wish to disable always updating cookbooks in CI or other testing environments.
# For example:
# always_update_cookbooks: <%= !ENV['CI'] %>
always_update_cookbooks: true
verifier:
name: inspec
platforms:
- name: apex/macos-10.12.6
driver:
box: apex/macos-10.12.6
suites:
- name: default
run_list:
- recipe[macos::default]
verifier:
inspec_tests:
- test/smoke/default
attributes:

Просмотреть файл

@ -1,45 +1,54 @@
# macos-cookbook
# macOS Cookbook
This cookbook provides:
- Resources for configuring and provisioning macOS.
- Recipes that implement common use-cases of the macOS cookbook's recources.
## Platforms
- macOS
## Chef
- Chef 13+
## Attributes
### Admin User and Password
```ruby
node['macos']['admin_user'] = 'vagrant'
node['macos']['admin_password'] = 'vagrant'
```
Each of these attributes defaults to vagrant since our resources are developed
with the Vagrant paradigm. In other words, the use and password declared here
should be an admin user.
### Mono
_TODO_
---
## Resources
### systemsetup
- `ard`
- `name`
- `defaults`
- `pmset`
- `systemsetup`
- `xcode`
The systemsetup resource is a wrapper for `/usr/sbin/systemsetup`. Use the `get` and `set` properties with hashes or
strings in order to get or set the desired setting.
Checkout the [Wiki](https://github.com/Microsoft/macos-cookbook/wiki) for details about the macOS Cookbook resources.
---
## Recipes
- `disable_software_updates`
- `keep_awake`
- `mono`
- `configurator`
Example "set" usage:
```ruby
systemsetup 'keep awake and get time information' do
set sleep: 0,
computersleep: 0,
displaysleep: 0,
harddisksleep: 0
get %w(networktimeserver timezone)
end
```
#### Available settings to use with the `systemsetup` resource:
date <mm:dd:yy>
time <hh:mm:ss>
timezone <timezone>
usingnetworktime <on off>
networktimeserver <timeserver>
sleep <minutes>
computersleep <minutes>
displaysleep <minutes>
harddisksleep <minutes>
wakeonmodem <on off>
wakeonnetworkaccess <on off>
restartpowerfailure <on off>
restartfreeze <on off>
allowpowerbuttontosleepcomputer <on off>
remotelogin <on off>
remoteappleevents <on off>
computername <computername>
localsubnetname <name>
startupdisk <disk>
waitforstartupafterpowerfailure <seconds>
disablekeyboardwhenenclosurelockisengaged <yes no>

Просмотреть файл

@ -1,10 +1,9 @@
default['macos']['admin_user'] = 'vagrant'
default['macos']['admin_password'] = 'vagrant'
default['macos']['xcode']['version'] = '9'
default['macos']['simulator']['previous_versions_to_install'] = '1'
default['macos']['mono']['package'] = 'MonoFramework-MDK-4.4.2.11.macos10.xamarin.universal.pkg'
default['macos']['mono']['version'] = '4.4.2'
default['macos']['mono']['checksum'] = 'd8bfbee7ae4d0d1facaf0ddfb70c0de4b1a3d94bb1b4c38e8fa4884539f54e23'
default['macos']['xcode']['major_version'] = '9'
default['macos']['xcode']['simulator']['major_version'] = %w(11 10)

Просмотреть файл

@ -0,0 +1,4 @@
{
"apple_id": "faker@fakeymcfakerton.gov",
"password": "fakeymcfakerton"
}

Просмотреть файл

@ -1,337 +0,0 @@
#!/usr/bin/env bash
# Script to gather some useful system info and slap it on the
# desktop as a background image in Mac OS X.
#
# Requires ImageMagick installed with GhostScript to run.
# If you have HomeBrew[http://Brew.sh] installed you can simply
# $ brew install imagemagick ghostscript
### Configuration
#####################################################################
# We need to explicitly set the PATH because launchd only looks at the
# Mac OS X default PATH in 10.10
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# Commandline options. This defines the usage page, and is used to parse cli
# opts & defaults from. The parsing is unforgiving so be precise in your syntax
read -r -d '' usage <<-'EOF'
-t Generate a test image without changing the background.
-d Enables debug mode
-l Redirect all output to the log file
-h This page
EOF
# Create a date-stamped log file in user's logs directory
LOG_DIR="$(stat -f "%N" ~/Library/Logs)/com.microsoft.bginfo"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/$(date).log"
touch "$LOG_FILE"
# Enable some primitive logging
function log { printf "%s\n" "${@}" >> "$LOG_FILE"; }
# Set magic variables for current FILE & DIR
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
__file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
log "Current Directory: $__dir" "File Name: $__file"
function help
{
echo "" 1>&2
echo " $*" 1>&2
echo "" 1>&2
echo " ${usage}" 1>&2
echo "" 1>&2
exit 1
}
# -- Returns specified field value from system_profiler
# - Arg1: system_profiler data type string (i.e. SPSoftwareDataType)
# - Arg2: Field name of value to be returned
function get_system_profile
{
system_profiler "$1" 2> /dev/null |
grep "$2" |
awk -F': ' '{ print $2 }'
}
# -- Returns rounded number
# - Arg1: Number or Calculation to be rounded
# - Arg2: Decimal places to round
# We need this to calculate font sizes relative to display resolution. Only
# works on positive numbers - http://stempell.com/2009/08/rechnen-in-bash/
function round
{
echo $( printf %.$2f $( echo "scale=$2; (((10^$2)*$1)+0.5)/(10^$2)" | bc ))
}
# # # # # # # # # # # # # # # # # # # # # # # #
# #
# Grab data needed for the desktop background #
# #
# # # # # # # # # # # # # # # # # # # # # # # #
function retrieve_system_info
{
# Some manual delay to prevent script from running before display
# resolution is set at startup
sleep 5
# Select only the digits and the 'x' between them, then delete spaces for a nice
# usable 1280x800 style format
display_resolution=$(
get_system_profile SPDisplaysDataType 'Resolution' |
egrep -o '^[[:digit:]]{3,4}\sx\s[[:digit:]]{3,4}' |
tr -d ' '
)
log "Display Resolution: $display_resolution"
display_height=$(echo "$display_resolution" | egrep -o "[[:digit:]]{3,4}$")
bg_pointsize=$(round "$display_height*0.022" 0)
os_version=$(get_system_profile SPSoftwareDataType 'System Version')
model_id=$(
get_system_profile SPHardwareDataType 'Model Identifier' |
awk '{ print "("$1")" }'
)
serial_number=$(get_system_profile SPHardwareDataType 'Serial Number')
# http://apple.stackexchange.com/questions/98080/can-a-macs-model-year-be-determined-via-terminal-command
# This Apple URL when provided with the last 3 digits of a serial number will
# return an XML document with an element named <configCode> that contains the
# official Apple model name for that machine.
model_name=$(
apple_url='http://support-sp.apple.com/sp/product/?cc='
curl "$apple_url$(echo "$serial_number" | cut -c 9-)" |
sed 's|.*<configCode>\(.*\)</configCode>.*|\1|' |
tr -d '()'
)
memory=$(
get_system_profile SPHardwareDataType 'Memory' |
awk '{ print $1" "$2" RAM" }'
)
ip_address=$(
get_system_profile SPNetworkDataType 'IPv4 Addresses' |
awk '{ print $1 }'
)
mac_address=$(ifconfig en0 | awk '/ether/ { print $2}') || true
# Small ruby script to parse data from system_profiler SPStorageDataType
# into a easier-for-me-to-use format
storage_report=$("$__dir"/macstorage.sh --report)
boot_volume=$(
diskutil info / |
grep Volume\ Name: |
cut -c 30-
) || true
cpu_info=$(
system_profiler SPHardwareDataType 2> /dev/null |
awk -F': ' '{
if ($1 ~ /Processor Name|Processor Speed|Cores/) printf "%s ", $2;
} END { print "Cores" }'
)
computer_name=$(scutil --get LocalHostName)
# This part is still untested. Bruce gave me this defaults read.
checked_out_to=$(
defaults read com.microsoft.macbu.infra.exclient 'Owners EMail' |
awk '{ print "Checked out to: "$1 }'
) || true
xcode_version=$(xcodebuild -version 2> /dev/null | head -n 1) || true
# Regex demystified: 1 to 3 digits followed by a dot, then repeat that pattern
# twice more
mono_version=$(
mono --version 2> /dev/null |
egrep -o 'version [[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' |
awk '{ print "Mono "$2 }'
) || true
}
function bg_color
{
if [ "$boot_volume" = "ChangeOS" ]; then
echo "rgb(65,55,55)"
else
echo "rgb(90,90,95)"
fi
}
function xcode_mono_versions
{
if [ -z "$xcode_version" ] || [ -z "$mono_version" ]; then
echo "$xcode_version" "$mono_version"
else
echo "$xcode_version & $mono_version"
fi
}
# -- Formats each piece of data on its very own new line
function background_text
{
printf %"s\n" " " "$model_name $model_id" "$cpu_info | $memory" \
"$ip_address | $mac_address" "$serial_number" " " "$(xcode_mono_versions)" \
" " "Volume: (Available / Capacity)" "- - - - - - - - - - - - - - - - - - -" \
"$storage_report"
}
# -- Read more about this usage of ImageMagick at http://www.imagemagick.org/Usage/text/
function generate_image
{
convert -verbose -background "$(bg_color)" -fill ivory2 -interline-spacing 15 \
-size "$display_resolution" -gravity center -pointsize "$bg_pointsize" \
caption:"$(background_text)" \
"$__dir/image.gif"
}
function generate_header
{
top_padding=$(round "$display_height*0.07" 0)
header_pointsize=$(round "$bg_pointsize*1.875" 0)
header_2_padding=$((top_padding + header_pointsize + 5))
header_3_padding=$((header_2_padding + header_pointsize + 5))
log "========= HEADER LOGGING ========="
log "BG Point Size: $bg_pointsize"
log "Top Padding: $top_padding"
log "Header Point Size: $header_pointsize"
log "Header 2 Padding: $header_2_padding"
log "Header 3 Padding: $header_3_padding"
log "========= END HEADER LOG ========="
convert "$__dir/image.gif" -verbose -font Helvetica -pointsize "$header_pointsize" -draw \
"gravity north fill ivory2 text 0,$top_padding '$computer_name' \
fill ivory2 text 0,$header_2_padding '$os_version' \
fill ivory2 text 0,$header_3_padding '$checked_out_to'" "$__dir/final_bg.gif"
rm "$__dir/image.gif"
}
# -- Uses a snippet of AppleScript to set the desktop background
# and restarts the Dock to refresh the desktop
function set_desktop_background
{
path_to_image="$__dir/final_bg.gif"
log "Image Path: $path_to_image"
osascript -e "tell application \"System Events\" to set picture of every desktop to \"$path_to_image\""
killall Dock
}
function main
{
echo "Starting BGInfo"
echo "==============="
echo ""
retrieve_system_info
generate_image
generate_header
if [ "$TEST_MODE" -eq 1 ]; then
open final_bg.gif
else
set_desktop_background
fi
cat "$LOG_FILE" > "$LOG_DIR/BGInfo.log"
}
### Parse commandline options
#####################################################################
# Translate usage string -> getopts arguments, and set $arg_<flag> defaults
while read line; do
opt="$(echo "${line}" |awk '{print $1}' |sed -e 's#^-##')"
if ! echo "${line}" |egrep '\[.*\]' >/dev/null 2>&1; then
init="0" # it's a flag. init with 0
else
opt="${opt}:" # add : if opt has arg
init="" # it has an arg. init with ""
fi
opts="${opts}${opt}"
varname="arg_${opt:0:1}"
if ! echo "${line}" |egrep '\. Default=' >/dev/null 2>&1; then
eval "${varname}=\"${init}\""
else
match="$(echo "${line}" |sed 's#^.*Default=\(\)#\1#g')"
eval "${varname}=\"${match}\""
fi
done <<< "${usage}"
# Reset in case getopts has been used previously in the shell.
OPTIND=1
# Overwrite $arg_<flag> defaults with the actual CLI options
while getopts "${opts}" opt; do
line="$(echo "${usage}" |grep "\-${opt}")"
[ "${opt}" = "?" ] && help "Invalid use of script: $* "
varname="arg_${opt:0:1}"
default="${!varname}"
value="${OPTARG}"
if [ -z "${OPTARG}" ] && [ "${default}" = "0" ]; then
value="1"
fi
eval "${varname}=\"${value}\""
echo "cli arg ${varname} = ($default) -> ${!varname}"
done
shift $((OPTIND-1))
[ "$1" = "--" ] && shift
### Switches (like -d for debugmode, -h for showing helppage)
#####################################################################
# debug mode
if [ "${arg_d}" = "1" ]; then
set -o xtrace
fi
# testing mode
if [ "${arg_t}" = "1" ]; then
TEST_MODE=1
else
TEST_MODE=0
fi
# Redirect output to log file
if [ "${arg_l}" = "1" ]; then
exec 2>> "$LOG_FILE"
fi
# help mode
if [ "${arg_h}" = "1" ]; then
# Help exists with code 1
help "Help using ${0}"
fi
### Runtime
#####################################################################
# Exit on error. Append ||true if you expect an error.
# set -e is safer than #!/bin/bash -e because that is neutralised if
# someone runs your script like `bash yourscript.sh`
set -o errexit
set -o nounset
# Bash will remember & return the highest exitcode in a chain of pipes.
# This way you can catch the error in case mysqldump fails in `mysqldump |gzip`
set -o pipefail
### Start the Program ###
main

Просмотреть файл

@ -1,11 +0,0 @@
#!/usr/bin/env ruby
require File.expand_path File.dirname(__FILE__) + '/storage.rb'
volumes = MacStorage.new
if ARGV.first == '--report'
volumes.print_storage_report
else
puts volumes.volumes
end

Просмотреть файл

@ -1,76 +0,0 @@
require 'yaml'
# For working with the output of `system_profiler SPStorageDataType`
class MacStorage
attr_reader :volumes
CURR_DIR = File.expand_path File.dirname(__FILE__)
def initialize(options = {})
if options[:file]
storage_data = options[:file]
else
system "system_profiler SPStorageDataType > #{CURR_DIR}/storage_data.txt"
storage_data = "#{CURR_DIR}/storage_data.txt"
end
storage_yml = "#{CURR_DIR}/storage_data.yml"
File.open(storage_yml, 'w') do |file|
file.puts yamlize(storage_data)
end
@volumes = YAML.load_file storage_yml
system "rm #{storage_yml} #{storage_data}"
end
def internal_volumes
volumes.select do |volume|
(volume['Physical Volumes'] &&
volume['Physical Volumes'].all? do |_, disk_properties|
disk_properties['Internal']
end) || (volume['Physical Drive'] && volume['Physical Drive']['Internal'])
end
end
def print_storage_report
internal_volumes.each do |volume|
puts "#{volume['Volume Name']}: " \
"#{strip_bytes(volume['Available'])} " \
"/ #{strip_bytes(volume['Capacity'])}" \
"#{' [BOOT]' if volume['Mount Point'] == '/'}"
end
nil
end
# Takes the output of a `system_profiler SPStorageDataType` & makes a few
# tweaks to turn it into a YAML readable format.
def yamlize(storage_file)
IO.readlines(storage_file).map.with_index do |line, index|
# Insert a --- at the top of the file
if index == 0
'---'
# In the sys profiler output, only volume names start with 4 spaces.
# This searches for those lines and converts them to the start of a YAML
# array, labels the volume name with the key 'Volume Name', and removes
# trailing colon after the volume name - http://rubular.com/r/Nyzgsok34L
elsif line =~ /^\s{4}\S+.*$/
line.delete(':').gsub(' ', '- Volume Name: ')
# Removes 4 leading spaces from any line that begins with > 6 spaces
elsif line =~ /^\s{6,}\S+.*$/
line[4..-1]
# Only serves purpose of maintaining blank lines
else
line
end
end
end
private
def strip_bytes(storage_string)
storage_string.gsub(/\s\(.+\)$/, '')
end
end

Просмотреть файл

@ -1,235 +0,0 @@
<?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>AppleAntiAliasingThreshold</key>
<integer>4</integer>
<key>AppleLanguages</key>
<array>
<string>en</string>
</array>
<key>AppleLocale</key>
<string>en_US</string>
<key>AppleMiniaturizeOnDoubleClick</key>
<false/>
<key>NSAutomaticDashSubstitutionEnabled</key>
<true/>
<key>NSAutomaticQuoteSubstitutionEnabled</key>
<true/>
<key>NSAutomaticSpellingCorrectionEnabled</key>
<false/>
<key>NSPreferredWebServices</key>
<dict>
<key>NSWebServicesProviderWebSearch</key>
<dict>
<key>NSDefaultDisplayName</key>
<string>Bing</string>
<key>NSProviderIdentifier</key>
<string>com.bing.www</string>
</dict>
</dict>
<key>NSUserDictionaryReplacementItems</key>
<array/>
<key>WebAutomaticSpellingCorrectionEnabled</key>
<true/>
<key>com.apple.ink.framework</key>
<dict>
<key>backgroundOpacity</key>
<real>0.80000000000000004</real>
<key>endOfPhraseTimeout</key>
<real>1.125</real>
<key>gesturesEnabled</key>
<integer>-1</integer>
<key>gesturesTargeted</key>
<integer>0</integer>
<key>inkBarVisible</key>
<true/>
<key>inkMenuVisible</key>
<false/>
<key>inkPadEraserWidthMax</key>
<real>5</real>
<key>inkPadEraserWidthMin</key>
<real>2</real>
<key>inkPadFont</key>
<integer>0</integer>
<key>inkPadFrameSketchForPaste</key>
<false/>
<key>inkPadInputMode</key>
<integer>1952807028</integer>
<key>inkPadPenBrightMax</key>
<real>1</real>
<key>inkPadPenBrightMin</key>
<real>0.01</real>
<key>inkPadPenWidthMax</key>
<real>3</real>
<key>inkPadPenWidthMin</key>
<real>1</real>
<key>inkPadRect</key>
<dict>
<key>bottom</key>
<integer>0</integer>
<key>left</key>
<integer>0</integer>
<key>right</key>
<integer>0</integer>
<key>top</key>
<integer>0</integer>
</dict>
<key>inkPadSketchBackColor</key>
<dict>
<key>b</key>
<real>1</real>
<key>g</key>
<real>1</real>
<key>r</key>
<real>1</real>
</dict>
<key>inkPadSketchBackColorForPaste</key>
<dict>
<key>b</key>
<real>1</real>
<key>g</key>
<real>1</real>
<key>r</key>
<real>1</real>
</dict>
<key>inkPadSketchBorder</key>
<integer>4</integer>
<key>inkPadSketchLinecolor</key>
<dict>
<key>b</key>
<real>0.93000000000000005</real>
<key>g</key>
<real>0.88</real>
<key>r</key>
<real>0.84999999999999998</real>
</dict>
<key>inkPadTextBackColor</key>
<dict>
<key>b</key>
<real>1</real>
<key>g</key>
<real>1</real>
<key>r</key>
<real>1</real>
</dict>
<key>inkPadTextLineColor</key>
<dict>
<key>b</key>
<real>0.95999999999999996</real>
<key>g</key>
<real>0.82999999999999996</real>
<key>r</key>
<real>0.63</real>
</dict>
<key>inkPadToolBackColor</key>
<dict>
<key>b</key>
<real>0.84999999999999998</real>
<key>g</key>
<real>0.84999999999999998</real>
<key>r</key>
<real>0.84999999999999998</real>
</dict>
<key>inkPadUseToolColor</key>
<true/>
<key>inkPadVisible</key>
<false/>
<key>inkServerPSN</key>
<dict>
<key>highLongOfPSN</key>
<integer>0</integer>
<key>lowLongOfPSN</key>
<integer>0</integer>
</dict>
<key>inkSounds</key>
<true/>
<key>inkWindowVisible</key>
<true/>
<key>language</key>
<integer>0</integer>
<key>logAPIUse</key>
<false/>
<key>logCGInking</key>
<false/>
<key>logCoalescing</key>
<false/>
<key>logEventDisposition</key>
<false/>
<key>logEventProcessed</key>
<false/>
<key>logInkEvents</key>
<false/>
<key>logInputMethod</key>
<false/>
<key>logInstantMouser</key>
<false/>
<key>logMouseEvents</key>
<false/>
<key>logMoves</key>
<false/>
<key>logPhraseModifiers</key>
<false/>
<key>logPoints</key>
<false/>
<key>logReposts</key>
<false/>
<key>logRouteToInkPad</key>
<false/>
<key>logServerLaunch</key>
<false/>
<key>logStrokeModifiers</key>
<false/>
<key>logTabletEvents</key>
<false/>
<key>logThisProcess</key>
<false/>
<key>logToFile</key>
<false/>
<key>logging</key>
<false/>
<key>penBrightMax</key>
<real>0.5</real>
<key>penBrightMin</key>
<real>0.0</real>
<key>penToInkDistance</key>
<real>6</real>
<key>penToMouseTimeout</key>
<real>0.45000000000000001</real>
<key>penWidthMax</key>
<real>2</real>
<key>penWidthMin</key>
<real>2</real>
<key>prefsVersion</key>
<integer>1</integer>
<key>printPhrases</key>
<false/>
<key>printText</key>
<false/>
<key>proximityTermination</key>
<true/>
<key>recognitionEnabled</key>
<true/>
<key>recognizeEuropeanChars</key>
<false/>
<key>showCursorInProximity</key>
<true/>
<key>showCursorInking</key>
<true/>
<key>showCursorOutOfProximity</key>
<true/>
<key>userInkOnDemandButtonMask</key>
<integer>0</integer>
<key>userInkOnDemandMode</key>
<integer>0</integer>
<key>wordSpacing</key>
<integer>500</integer>
</dict>
<key>com.apple.springing.delay</key>
<real>0.5</real>
<key>com.apple.springing.enabled</key>
<true/>
<key>userMenuExtraStyle</key>
<integer>1</integer>
</dict>
</plist>

Просмотреть файл

@ -1,680 +0,0 @@
<?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>Default Window Settings</key>
<string>Homebrew</string>
<key>HasMigratedDefaults</key>
<true/>
<key>Man Page Window Settings</key>
<string>Man Page</string>
<key>NSNavPanelExpandedStateForSaveMode</key>
<true/>
<key>NSToolbar Configuration com.apple.NSColorPanel</key>
<dict>
<key>TB Is Shown</key>
<integer>1</integer>
</dict>
<key>NSWindow Frame NSColorPanel</key>
<string>310 216 231 235 0 0 1920 1057 </string>
<key>NSWindow Frame TTAppPreferences</key>
<string>423 316 650 487 0 0 1920 1057 </string>
<key>NSWindow Frame TTWindow</key>
<string>6 89 1291 968 0 0 1920 1057 </string>
<key>NSWindow Frame TTWindow Basic</key>
<string>89 384 585 366 0 0 1280 1001 </string>
<key>NSWindow Frame TTWindow Homebrew</key>
<string>6 89 1291 968 0 0 1920 1057 </string>
<key>PMPrintingExpandedStateForPrint2</key>
<false/>
<key>SecureKeyboardEntry</key>
<false/>
<key>Startup Window Settings</key>
<string>Homebrew</string>
<key>Window Settings</key>
<dict>
<key>Basic</key>
<dict>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AmAAAAAAAAEBCA
AoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRjbGFz
c2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEaG1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfM
AAAAAAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>1.004032258064516</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>name</key>
<string>Basic</string>
<key>shellExitAction</key>
<integer>1</integer>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Grass</key>
<dict>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECAwLjA3NDUwOTgwNyAwLjQ2
NjY2NjcgMC4yMzkyMTU3ABACgALSEBESE1okY2xhc3NuYW1lWCRj
bGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJj
aGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYoWHiY6ZoqqttsjL
0AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADS
</data>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBgwLjU1Njg2Mjc3IDAuMTU2
ODYyNzUgMAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dO
U0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcY
VHJvb3SAAQgRGiMtMjc7QUhOW2J9f4GGkZqipa7Aw8gAAAAAAAAB
AQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAyg==
</data>
<key>CursorType</key>
<integer>0</integer>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AoAAAAAAAAEBCA
AoADV0NvdXJpZXLSExQVFlokY2xhc3NuYW1lWCRjbGFzc2VzVk5T
Rm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ry
b290gAEIERojLTI3PEJLUltiaXJ0dniAhZCZoKOsvsHGAAAAAAAA
AQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAMg=
</data>
<key>FontAntialias</key>
<true/>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECEwLjcxMzcyNTUxIDAuMjg2
Mjc0NTIgMC4xNDkwMTk2MQAQAoAC0hAREhNaJGNsYXNzbmFtZVgk
Y2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KGiIqPmqOrrrfJ
zNEAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA0w==
</data>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBcxIDAuNjkwMTk2MSAwLjIz
MTM3MjU3ABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05T
Q29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhU
cm9vdIABCBEaIy0yNztBSE5bYnx+gIWQmaGkrb/CxwAAAAAAAAEB
AAAAAAAAABkAAAAAAAAAAAAAAAAAAADJ
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBgxIDAuOTQxMTc2NTMgMC42
NDcwNTg4NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dO
U0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcY
VHJvb3SAAQgRGiMtMjc7QUhOW2J9f4GGkZqipa7Aw8gAAAAAAAAB
AQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAyg==
</data>
<key>name</key>
<string>Grass</string>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Homebrew</key>
<dict>
<key>BackgroundBlur</key>
<real>0.0</real>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0cwIDAuNzUAEAOAAtIQERIT
WiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj
dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FI
UF1kbG5wdYCJkZSdr7K3AAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA
AAAAAAAAALk=
</data>
<key>CursorBlink</key>
<true/>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECEwLjIxOTYwNzg2IDAuOTk2
MDc4NDkgMC4xNTI5NDExOAAQAoAC0hAREhNaJGNsYXNzbmFtZVgk
Y2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KGiIqPmqOrrrfJ
zNEAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA0w==
</data>
<key>CursorType</key>
<integer>0</integer>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AoAAAAAAAAEBCA
AoADWkFuZGFsZU1vbm/SExQVFlokY2xhc3NuYW1lWCRjbGFzc2Vz
Vk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEa
G1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniDiJOco6avwcTJAAAA
AAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAMs=
</data>
<key>FontAntialias</key>
<false/>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEB4wLjAzNDU3ODM5NSAwIDAu
OTEzMjY1MzEgMC42NQAQAYAC0hAREhNaJGNsYXNzbmFtZVgkY2xh
c3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KDhYeMl6Coq7TGyc4A
AAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA0A==
</data>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NGMCAxIDAAEAGAAtIQERITWiRj
bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8Q
D05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITlti
aWttcn2GjpGarK+0AAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAA
AAAAALY=
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECIwLjE1Njg2Mjc1IDAuOTk2
MDc4NDkgMC4wNzg0MzEzNzUAEAKAAtIQERITWiRjbGFzc25hbWVY
JGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRB
cmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltih4mLkJukrK+4
ys3SAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAANQ=
</data>
<key>name</key>
<string>Homebrew</string>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Man Page</key>
<dict>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECYwLjk5NjA3ODQ5MTIgMC45
NTY4NjI4MDczIDAuNjExNzY0NzI5ABACgALSEBESE1okY2xhc3Nu
YW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tl
eWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYouNj5Sf
qLCzvM7R1gAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADY
</data>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AmAAAAAAAAEBCA
AoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRjbGFz
c2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEaG1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfM
AAAAAAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>1.004032258064516</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>name</key>
<string>Man Page</string>
<key>rowCount</key>
<integer>48</integer>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Novel</key>
<dict>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBowLjg3NSAwLjg1Nzk4MzY1
IDAuNzY1NjI1ABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2Vz
V05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2ZXLR
FxhUcm9vdIABCBEaIy0yNztBSE5bYn+Bg4iTnKSnsMLFygAAAAAA
AAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADM
</data>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECowLjIyNzQ1MSAwLjEzNzI1
NDkxIDAuMTMzMzMzMzQgMC42NDk5OTk5OAAQAoAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAP
TlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KP
kZOYo6y0t8DS1doAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAA
AAAA3A==
</data>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AoAAAAAAAAEBCA
AoADV0NvdXJpZXLSExQVFlokY2xhc3NuYW1lWCRjbGFzc2VzVk5T
Rm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ry
b290gAEIERojLTI3PEJLUltiaXJ0dniAhZCZoKOsvsHGAAAAAAAA
AQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAMg=
</data>
<key>FontAntialias</key>
<true/>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECwwLjQ1NDA4MTY1IDAuNDUx
MDA0ODkgMC4zMTUxNDM5MSAwLjc1OTk5OTk5ABABgALSEBESE1ok
Y2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3Rf
EA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5b
YpGTlZqlrra5wtTX3AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAA
AAAAAADe
</data>
<key>ShowWindowSettingsNameInTitle</key>
<false/>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBswLjUgMC4xNjQzMDA1NSAw
LjA5OTE0NTQ3MgAQAYAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nl
c1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy
0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KAgoSJlJ2lqLHDxssAAAAA
AAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAzQ==
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECEwLjIzMzE3MzEyIDAuMTM1
NDA4NTcgMC4xMzI5MDYwOAAQAYAC0hAREhNaJGNsYXNzbmFtZVgk
Y2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KGiIqPmqOrrrfJ
zNEAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA0w==
</data>
<key>name</key>
<string>Novel</string>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Ocean</key>
<dict>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECEwLjEzMjA1NjI0IDAuMzA4
NDc4NTYgMC43MzkxMzA0NAAQAYAC0hAREhNaJGNsYXNzbmFtZVgk
Y2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KGiIqPmqOrrrfJ
zNEAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA0w==
</data>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AmAAAAAAAAEBCA
AoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRjbGFz
c2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEaG1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfM
AAAAAAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>0.99596774193548387</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBcwLjEzMDczOTMgMC40Mjg0
NTgwNiAxABABgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05T
Q29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhU
cm9vdIABCBEaIy0yNztBSE5bYnx+gIWQmaGkrb/CxwAAAAAAAAEB
AAAAAAAAABkAAAAAAAAAAAAAAAAAAADJ
</data>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0IxABADgALSEBESE1okY2xh
c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9O
U0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSFBdZGdp
a3B7hIyPmKqtsgAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAA
AAC0
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0IxABADgALSEBESE1okY2xh
c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9O
U0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSFBdZGdp
a3B7hIyPmKqtsgAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAA
AAC0
</data>
<key>fontAllowsDisableAntialias</key>
<integer>0</integer>
<key>name</key>
<string>Ocean</string>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Pro</key>
<dict>
<key>BackgroundBlur</key>
<real>0.0</real>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc00wIDAuODUwMDAwMDIAEAOA
AtIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhO
U09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERoj
LTI3O0FIUF1kcnR2e4aPl5qjtbi9AAAAAAAAAQEAAAAAAAAAGQAA
AAAAAAAAAAAAAAAAAL8=
</data>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0swLjMwMjQxOTM2ABADgALS
EBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNP
YmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0y
NztBSFBdZHBydHmEjZWYobO2uwAAAAAAAAEBAAAAAAAAABkAAAAA
AAAAAAAAAAAAAAC9
</data>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AkAAAAAAAAEBCA
AoADVk1vbmFjb9ITFBUWWiRjbGFzc25hbWVYJGNsYXNzZXNWTlNG
b250ohUXWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RobVHJv
b3SAAQgRGiMtMjc8QktSW2JpcnR2eH+Ej5ifoqu9wMUAAAAAAAAB
AQAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAxw==
</data>
<key>FontAntialias</key>
<false/>
<key>FontWidthSpacing</key>
<real>0.99596774193548387</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0swLjI1NDAzMjI1ABADgALS
EBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNP
YmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0y
NztBSFBdZHBydHmEjZWYobO2uwAAAAAAAAEBAAAAAAAAABkAAAAA
AAAAAAAAAAAAAAC9
</data>
<key>ShowWindowSettingsNameInTitle</key>
<false/>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0IxABADgALSEBESE1okY2xh
c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9O
U0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSFBdZGdp
a3B7hIyPmKqtsgAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAA
AAC0
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0swLjk0NzU4MDY0ABADgALS
EBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNP
YmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0y
NztBSFBdZHBydHmEjZWYobO2uwAAAAAAAAEBAAAAAAAAABkAAAAA
AAAAAAAAAAAAAAC9
</data>
<key>name</key>
<string>Pro</string>
<key>shellExitAction</key>
<integer>2</integer>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Red Sands</key>
<dict>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECwwLjQ3ODI2MDg3IDAuMTQ1
MTA0MzYgMC4xMTY4ODEyMSAwLjg1MDAwMDAyABABgALSEBESE1ok
Y2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3Rf
EA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5b
YpGTlZqlrra5wtTX3AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAA
AAAAAADe
</data>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0IxABADgALSEBESE1okY2xh
c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9O
U0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSFBdZGdp
a3B7hIyPmKqtsgAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAA
AAC0
</data>
<key>CursorType</key>
<integer>1</integer>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AmAAAAAAAAEBCA
AoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRjbGFz
c2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEaG1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfM
AAAAAAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>1.004032258064516</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECMwLjIzNzkwMzIxIDAuMDk3
NjAxMzM5IDAuMDg3NDM0NTIzABACgALSEBESE1okY2xhc3NuYW1l
WCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVk
QXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYoiKjJGcpa2w
ucvO0wAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADV
</data>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPEBwwLjg3NSAwLjc0MDM4ODQ1
IDAuMTMyMTM4NzMAEAGAAtIQERITWiRjbGFzc25hbWVYJGNsYXNz
ZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEXGFRyb290gAEIERojLTI3O0FITltigYOFipWepqmyxMfMAAAA
AAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECEwLjg0MzEzNzMyIDAuNzg4
MjM1MzcgMC42NTQ5MDE5OAAQAoAC0hAREhNaJGNsYXNzbmFtZVgk
Y2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KGiIqPmqOrrrfJ
zNEAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA0w==
</data>
<key>fontAllowsDisableAntialias</key>
<integer>0</integer>
<key>name</key>
<string>Red Sands</string>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Silver Aerogel</key>
<dict>
<key>BackgroundAlphaInactive</key>
<real>0.5</real>
<key>BackgroundBlur</key>
<real>1</real>
<key>BackgroundBlurInactive</key>
<real>0.0</real>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGHyBYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKUHCBEVHFUkbnVsbNQJCgsMDQ4PEFdO
U1doaXRlXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFj
ZVYkY2xhc3NIMC41IDAuNQAQA4ACgATSEgwTFFROU0lEEAKAA9IW
FxgZWiRjbGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNlohob
XE5TQ29sb3JTcGFjZVhOU09iamVjdNIWFx0eV05TQ29sb3KiHRtf
EA9OU0tleWVkQXJjaGl2ZXLRISJUcm9vdIABAAgAEQAaACMALQAy
ADcAPQBDAEwAVABhAHYAfQCGAIgAigCMAJEAlgCYAJoAnwCqALMA
wADDANAA2QDeAOYA6QD7AP4BAwAAAAAAAAIBAAAAAAAAACMAAAAA
AAAAAAAAAAAAAAEF
</data>
<key>BackgroundSettingsForInactiveWindows</key>
<true/>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OV05TV2hp
dGVcTlNDb2xvclNwYWNlViRjbGFzc0UwLjg1ABADgALSEBESE1ok
Y2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3Rf
EA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSFBd
ZGpsbnN+h4+Sm62wtQAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAA
AAAAAAC3
</data>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AmAAAAAAAAEBCA
AoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRjbGFz
c2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEaG1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfM
AAAAAAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>1.004032258064516</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdC
XE5TQ29sb3JTcGFjZVYkY2xhc3NPECQwLjM5NDQzMDA3MTEgMC4z
OTk2NDY2OTk0IDAuNTQwNDI4NAAQAYAC0hAREhNaJGNsYXNzbmFt
ZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXll
ZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KJi42Snaau
sbrMz9QAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA1g==
</data>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGHyBYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKUHCBEVHFUkbnVsbNQJCgsMDQ4PEFdO
U1doaXRlXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFj
ZVYkY2xhc3NCMQAQA4ACgATSEgwTFFROU0lEEAKAA9IWFxgZWiRj
bGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNlohobXE5TQ29s
b3JTcGFjZVhOU09iamVjdNIWFx0eV05TQ29sb3KiHRtfEA9OU0tl
eWVkQXJjaGl2ZXLRISJUcm9vdIABCBEaIy0yNz1DTFRhdn2AgoSG
i5CSlJmkrbq9ytPY4OP1+P0AAAAAAAABAQAAAAAAAAAjAAAAAAAA
AAAAAAAAAAAA/w==
</data>
<key>name</key>
<string>Silver Aerogel</string>
<key>type</key>
<string>Window Settings</string>
</dict>
<key>Solid Colors</key>
<dict>
<key>BackgroundImageBookmark</key>
<data>
YnBsaXN0MDDUAQIDBAUGFBVYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKMHCA1VJG51bGzSCQoLDFdOUy5kYXRh
ViRjbGFzc08RAehib29r6AEAAAAAARAQAAAATAEAAAcAAAABAQAA
TGlicmFyeQAQAAAAAQEAAERlc2t0b3AgUGljdHVyZXMMAAAAAQEA
AFNvbGlkIENvbG9ycwwAAAABBgAABAAAABQAAAAsAAAACAAAAAQD
AAAtgDYDAAAAAAgAAAAEAwAA2tM4AwAAAAAIAAAABAMAAJfUOAMA
AAAADAAAAAEGAABUAAAAZAAAAHQAAAAYAAAAAQIAAAIAAAAAAAAA
DwAAAAAAAAAAAAAAAAAAAAwAAAABAQAATWFjaW50b3NoIEhECAAA
AAQDAAAAAAAACgAAAAgAAAAABAAAQbAnRXIAAAAkAAAAAQEAADM1
OTAxRjRELUQ1RTUtM0E5OC1CODAzLTc3MEM0NUE5RDA2QxgAAAAB
AgAAgQAAAAEACADvPwAAAQAIAAAAAAAAAAAAAQAAAAEBAAAvAAAA
AAAAAAEFAACEAAAA/v///wEAAAAAAAAACgAAAAQQAABAAAAAAAAA
AAUQAACEAAAAAAAAABAQAACYAAAAAAAAAAIgAAA4AQAAAAAAABAg
AAC4AAAAAAAAABEgAADsAAAAAAAAABIgAADMAAAAAAAAABMgAADc
AAAAAAAAACAgAAAYAQAAAAAAADAgAABEAQAAAAAAAIAC0g4PEBFa
JGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhoxASE1ZO
U0RhdGFYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFhdUcm9v
dIABAAgAEQAaACMALQAyADcAOwBBAEYATgBVAkECQwJIAlMCXAJq
Am4CdQJ+ApACkwKYAAAAAAAAAgEAAAAAAAAAGAAAAAAAAAAAAAAA
AAAAApo=
</data>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGHyBYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKUHCBEVHFUkbnVsbNQJCgsMDQ4PEFdO
U1doaXRlXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFj
ZVYkY2xhc3NFMC43NQAQA4ACgATSEgwTFFROU0lEEAKAA9IWFxgZ
WiRjbGFzc25hbWVYJGNsYXNzZXNcTlNDb2xvclNwYWNlohobXE5T
Q29sb3JTcGFjZVhOU09iamVjdNIWFx0eV05TQ29sb3KiHRtfEA9O
U0tleWVkQXJjaGl2ZXLRISJUcm9vdIABAAgAEQAaACMALQAyADcA
PQBDAEwAVABhAHYAfQCDAIUAhwCJAI4AkwCVAJcAnACnALAAvQDA
AM0A1gDbAOMA5gD4APsBAAAAAAAAAAIBAAAAAAAAACMAAAAAAAAA
AAAAAAAAAAEC
</data>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5T
U2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNsYXNzI0AmAAAAAAAAEBCA
AoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRjbGFz
c2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZl
ctEaG1Ryb290gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfM
AAAAAAAAAQEAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAM4=
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>1.004032258064516</real>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>name</key>
<string>Solid Colors</string>
<key>type</key>
<string>Window Settings</string>
</dict>
</dict>
</dict>
</plist>

Просмотреть файл

@ -1,328 +0,0 @@
<?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>last-messagetrace-stamp</key>
<real>486681288.68076402</real>
<key>mod-count</key>
<integer>9</integer>
<key>persistent-apps</key>
<array>
<dict>
<key>GUID</key>
<integer>3234639742</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.Safari</string>
<key>dock-extra</key>
<false/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAACgAAMAAQAA0UyZ9gAASCsAAAAAAAAA
iwAAI4kAANAIec8AAAAACSD//gAAAAAAAAAA
/////wABAAQAAACLAA4AFgAKAFMAYQBmAGEA
cgBpAC4AYQBwAHAADwAaAAwATQBhAGMAaQBu
AHQAbwBzAGgAIABIAEQAEgAXQXBwbGljYXRp
b25zL1NhZmFyaS5hcHAAABMAAS8A//8AAA==
</data>
<key>_CFURLString</key>
<string>file:///Applications/Safari.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Safari</string>
<key>file-mod-date</key>
<integer>3547835335</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3547835257</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
<dict>
<key>GUID</key>
<integer>4058116844</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.Stickies</string>
<key>dock-extra</key>
<false/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAACmAAMAAQAA0UyZ9gAASCsAAAAAAAAA
iwAErEkAANA1Km0AAAAACSD//gAAAAAAAAAA
/////wABAAQAAACLAA4AGgAMAFMAdABpAGMA
awBpAGUAcwAuAGEAcABwAA8AGgAMAE0AYQBj
AGkAbgB0AG8AcwBoACAASABEABIAGUFwcGxp
Y2F0aW9ucy9TdGlja2llcy5hcHAAABMAAS8A
//8AAA==
</data>
<key>_CFURLString</key>
<string>file:///Applications/Stickies.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Stickies</string>
<key>file-mod-date</key>
<integer>3493145197</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3547833543</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
<dict>
<key>GUID</key>
<integer>4058116843</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.ActivityMonitor</string>
<key>dock-extra</key>
<false/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAADMAAMAAQAA0UyZ9gAASCsAAAAAAAAA
jAAGZwoAANEmv38AAAAACSD//gAAAAAAAAAA
/////wABAAgAAACMAAAAiwAOACoAFABBAGMA
dABpAHYAaQB0AHkAIABNAG8AbgBpAHQAbwBy
AC4AYQBwAHAADwAaAAwATQBhAGMAaQBuAHQA
bwBzAGgAIABIAEQAEgArQXBwbGljYXRpb25z
L1V0aWxpdGllcy9BY3Rpdml0eSBNb25pdG9y
LmFwcAAAEwABLwD//wAA
</data>
<key>_CFURLString</key>
<string>file:///Applications/Utilities/Activity%20Monitor.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Activity Monitor</string>
<key>file-mod-date</key>
<integer>3508977535</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3511458883</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
<dict>
<key>GUID</key>
<integer>4058116842</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.Console</string>
<key>dock-extra</key>
<false/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAACwAAMAAQAA0UyZ9gAASCsAAAAAAAAA
jAAGeGQAAM+9C9oAAAAACSD//gAAAAAAAAAA
/////wABAAgAAACMAAAAiwAOABgACwBDAG8A
bgBzAG8AbABlAC4AYQBwAHAADwAaAAwATQBh
AGMAaQBuAHQAbwBzAGgAIABIAEQAEgAiQXBw
bGljYXRpb25zL1V0aWxpdGllcy9Db25zb2xl
LmFwcAATAAEvAP//AAA=
</data>
<key>_CFURLString</key>
<string>file:///Applications/Utilities/Console.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Console</string>
<key>file-mod-date</key>
<integer>3485273050</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3511458883</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
<dict>
<key>GUID</key>
<integer>4058116841</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.DiskUtility</string>
<key>dock-extra</key>
<false/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAADAAAMAAQAA0UyZ9gAASCsAAAAAAAAA
jAAAEBsAANA1MPQAAAAACSD//gAAAAAAAAAA
/////wABAAgAAACMAAAAiwAOACIAEABEAGkA
cwBrACAAVQB0AGkAbABpAHQAeQAuAGEAcABw
AA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAA
SABEABIAJ0FwcGxpY2F0aW9ucy9VdGlsaXRp
ZXMvRGlzayBVdGlsaXR5LmFwcAAAEwABLwD/
/wAA
</data>
<key>_CFURLString</key>
<string>file:///Applications/Utilities/Disk%20Utility.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Disk Utility</string>
<key>file-mod-date</key>
<integer>3493146868</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3511458883</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
<dict>
<key>GUID</key>
<integer>4058116840</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.Terminal</string>
<key>dock-extra</key>
<false/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAAC0AAMAAQAA0UyZ9gAASCsAAAAAAAAA
jAAAKrMAANEkI8gAAAAACSD//gAAAAAAAAAA
/////wABAAgAAACMAAAAiwAOABoADABUAGUA
cgBtAGkAbgBhAGwALgBhAHAAcAAPABoADABN
AGEAYwBpAG4AdABvAHMAaAAgAEgARAASACNB
cHBsaWNhdGlvbnMvVXRpbGl0aWVzL1Rlcm1p
bmFsLmFwcAAAEwABLwD//wAA
</data>
<key>_CFURLString</key>
<string>file:///Applications/Utilities/Terminal.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Terminal</string>
<key>file-mod-date</key>
<integer>3508806600</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3511458883</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
<dict>
<key>GUID</key>
<integer>3234639755</integer>
<key>tile-data</key>
<dict>
<key>bundle-identifier</key>
<string>com.apple.systempreferences</string>
<key>dock-extra</key>
<true/>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAADEAAMAAQAA0UyZ9gAASCsAAAAAAAAA
iwAEwEQAANBBhn8AAAAACSD//gAAAAAAAAAA
/////wABAAQAAACLAA4ALgAWAFMAeQBzAHQA
ZQBtACAAUAByAGUAZgBlAHIAZQBuAGMAZQBz
AC4AYQBwAHAADwAaAAwATQBhAGMAaQBuAHQA
bwBzAGgAIABIAEQAEgAjQXBwbGljYXRpb25z
L1N5c3RlbSBQcmVmZXJlbmNlcy5hcHAAABMA
AS8A//8AAA==
</data>
<key>_CFURLString</key>
<string>file:///Applications/System%20Preferences.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>System Preferences</string>
<key>file-mod-date</key>
<integer>3547835335</integer>
<key>file-type</key>
<integer>41</integer>
<key>parent-mod-date</key>
<integer>3547835257</integer>
</dict>
<key>tile-type</key>
<string>file-tile</string>
</dict>
</array>
<key>persistent-others</key>
<array>
<dict>
<key>GUID</key>
<integer>3234639756</integer>
<key>tile-data</key>
<dict>
<key>arrangement</key>
<integer>2</integer>
<key>displayas</key>
<integer>0</integer>
<key>file-data</key>
<dict>
<key>_CFURLAliasData</key>
<data>
AAAAAACmAAMAAQAA0UyZ9gAASCsAAAAAAAbD
xAAGw8cAANFMmsIAAAAACSD//gAAAAAAAAAA
/////wABAAgABsPEAAKX/AAOABQACQBEAG8A
dwBuAGwAbwBhAGQAcwAPABoADABNAGEAYwBp
AG4AdABvAHMAaAAgAEgARAASABVVc2Vycy9h
ZG1pbi9Eb3dubG9hZHMAABMAAS8AABUAAgAM
//8AAA==
</data>
<key>_CFURLString</key>
<string>file:///Users/admin/Downloads/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>
<key>file-label</key>
<string>Downloads</string>
<key>file-mod-date</key>
<integer>3511459749</integer>
<key>file-type</key>
<integer>2</integer>
<key>parent-mod-date</key>
<integer>3511459732</integer>
<key>preferreditemsize</key>
<integer>-1</integer>
<key>showas</key>
<integer>1</integer>
</dict>
<key>tile-type</key>
<string>directory-tile</string>
</dict>
</array>
<key>version</key>
<integer>1</integer>
</dict>
</plist>

Просмотреть файл

@ -1,780 +0,0 @@
<?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>DesktopViewSettings</key>
<dict>
<key>IconViewSettings</key>
<dict>
<key>arrangeBy</key>
<string>none</string>
<key>backgroundColorBlue</key>
<real>1</real>
<key>backgroundColorGreen</key>
<real>1</real>
<key>backgroundColorRed</key>
<real>1</real>
<key>backgroundType</key>
<integer>0</integer>
<key>gridOffsetX</key>
<real>0.0</real>
<key>gridOffsetY</key>
<real>0.0</real>
<key>gridSpacing</key>
<real>54</real>
<key>iconSize</key>
<real>64</real>
<key>labelOnBottom</key>
<true/>
<key>showIconPreview</key>
<true/>
<key>showItemInfo</key>
<false/>
<key>textSize</key>
<real>12</real>
<key>viewOptionsVersion</key>
<integer>1</integer>
</dict>
</dict>
<key>DownloadsFolderListViewSettingsVersion</key>
<integer>1</integer>
<key>FXArrangeGroupViewBy</key>
<string>Name</string>
<key>FXConnectToBounds</key>
<string>{{269, 401}, {486, 231}}</string>
<key>FXConnectToLastURL</key>
<string></string>
<key>FXDesktopVolumePositions</key>
<dict>
<key>Macintosh HD_0x1.ad720f6p+28</key>
<dict>
<key>AnchorRelativeTo</key>
<integer>1</integer>
<key>ScreenID</key>
<integer>0</integer>
<key>xRelative</key>
<integer>-59</integer>
<key>yRelative</key>
<integer>63</integer>
</dict>
<key>OS X Base System_0x1.acfeab9p+28</key>
<dict>
<key>AnchorRelativeTo</key>
<integer>1</integer>
<key>ScreenID</key>
<integer>0</integer>
<key>xRelative</key>
<integer>-59</integer>
<key>yRelative</key>
<integer>63</integer>
</dict>
<key>Parallels Tools_0x1.ac4990cp+28</key>
<dict>
<key>AnchorRelativeTo</key>
<integer>1</integer>
<key>ScreenID</key>
<integer>0</integer>
<key>xRelative</key>
<integer>-59</integer>
<key>yRelative</key>
<integer>63</integer>
</dict>
<key>Recovery HD_0x1.ad72182p+28</key>
<dict>
<key>AnchorRelativeTo</key>
<integer>1</integer>
<key>ScreenID</key>
<integer>0</integer>
<key>xRelative</key>
<integer>-59</integer>
<key>yRelative</key>
<integer>287</integer>
</dict>
</dict>
<key>FXMyDocumentsArrangeGroupViewBy</key>
<string>Date Last Opened</string>
<key>FXPreferencesWindow.Location</key>
<string>{{10, 416}, {352, 319}}</string>
<key>FXPreferredViewStyle</key>
<string>clmv</string>
<key>FXRecentFolders</key>
<array>
<dict>
<key>file-bookmark</key>
<data>
Ym9va/QCAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA/AEAAAQAAAADAwAAAAIAAAwAAAABAQAAQXBwbGlj
YXRpb25zCQAAAAEBAABVdGlsaXRpZXMAAAAIAAAAAQYAABAAAAAk
AAAACAAAAAQDAACLAAAAAAAAAAgAAAAEAwAAjAAAAAAAAAAIAAAA
AQYAAEgAAABYAAAACAAAAAAEAABBuau1OwAAABgAAAABAgAAAgAA
AAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAIAAAAAQkAAGZp
bGU6Ly8vDAAAAAEBAABNYWNpbnRvc2ggSEQIAAAABAMAAAAgwcwP
AAAACAAAAAAEAABButcg9gAAACQAAAABAQAAMjUxRTUzQzctMkQx
MC0zNTQ1LUJDMDUtOUVEOEEyMTA5QkVDGAAAAAECAACBAAAAAQAI
AO8XAAABAAgAAAAAAAAAAAABAAAAAQEAAC8AAACoAAAAAQIAADAz
ODlmN2EyODg4ZGFjOTMyNTgxOTUzNjkxNWMzMjZjNmMxMGFjNDc7
MDAwMDAwMDA7MDAwMDAwMDA7MDAwMDAwMDAwMDAwMDAyMDtjb20u
YXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZTswMDAwMDAwMTsw
MTAwMDAwMjswMDAwMDAwMDAwMDAwMDhjOy9hcHBsaWNhdGlvbnMv
dXRpbGl0aWVzAMAAAAD+////AQAAAAAAAAAPAAAABBAAADgAAAAA
AAAABRAAAGgAAAAAAAAAEBAAAIgAAAAAAAAAQBAAAHgAAAAAAAAA
AiAAAEABAAAAAAAABSAAALAAAAAAAAAAECAAAMAAAAAAAAAAESAA
APQAAAAAAAAAEiAAANQAAAAAAAAAEyAAAOQAAAAAAAAAICAAACAB
AAAAAAAAMCAAAKgAAAAAAAAAAdAAAKgAAAAAAAAAENAAAAQAAAAA
AAAAgPAAAEwBAAAAAAAA
</data>
<key>name</key>
<string>Utilities</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va8ACAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAyAEAAAQAAAADAwAAAAIAAAwAAAABAQAAQXBwbGlj
YXRpb25zBAAAAAEGAAAQAAAACAAAAAQDAACLAAAAAAAAAAQAAAAB
BgAAMAAAAAgAAAAABAAAQbmrtTsAAAAYAAAAAQIAAAIAAAAAAAAA
DwAAAAAAAAAAAAAAAAAAAAAAAAABBQAACAAAAAEJAABmaWxlOi8v
LwwAAAABAQAATWFjaW50b3NoIEhECAAAAAQDAAAAIMHMDwAAAAgA
AAAABAAAQbrXIPYAAAAkAAAAAQEAADI1MUU1M0M3LTJEMTAtMzU0
NS1CQzA1LTlFRDhBMjEwOUJFQxgAAAABAgAAgQAAAAEACADvFwAA
AQAIAAAAAAAAAAAAAQAAAAEBAAAvAAAAngAAAAECAABjODgxNWJl
Mjk4YzAyYjY0ZDAyOTdlYTcwYmVjNTJmZGE1MDVkNzU0OzAwMDAw
MDAwOzAwMDAwMDAwOzAwMDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxl
LmFwcC1zYW5kYm94LnJlYWQtd3JpdGU7MDAwMDAwMDE7MDEwMDAw
MDI7MDAwMDAwMDAwMDAwMDA4YjsvYXBwbGljYXRpb25zAAAAwAAA
AP7///8BAAAAAAAAAA8AAAAEEAAAJAAAAAAAAAAFEAAAQAAAAAAA
AAAQEAAAXAAAAAAAAABAEAAATAAAAAAAAAACIAAAFAEAAAAAAAAF
IAAAhAAAAAAAAAAQIAAAlAAAAAAAAAARIAAAyAAAAAAAAAASIAAA
qAAAAAAAAAATIAAAuAAAAAAAAAAgIAAA9AAAAAAAAAAwIAAAfAAA
AAAAAAAB0AAAfAAAAAAAAAAQ0AAABAAAAAAAAACA8AAAIAEAAAAA
AAA=
</data>
<key>name</key>
<string>Applications</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9vayQDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAACAIAAAQAAAADAwAAAAIAAAUAAAABAQAAVXNlcnMA
AAAFAAAAAQEAAGFkbWluAAAACAAAAAEGAAAQAAAAIAAAAAgAAAAE
AwAA/JcCAAAAAAAIAAAABAMAAMTDBgAAAAAACAAAAAEGAABAAAAA
UAAAAAgAAAAABAAAQbrXJqQAAAAYAAAAAQIAAAIAAAAAAAAADwAA
AAAAAAAAAAAAAAAAAAAAAAABBQAACAAAAAQDAAAAAAAAAAAAAAQA
AAADAwAA9QEAAAgAAAABCQAAZmlsZTovLy8MAAAAAQEAAE1hY2lu
dG9zaCBIRAgAAAAEAwAAACDBzA8AAAAIAAAAAAQAAEG61yD2AAAA
JAAAAAEBAAAyNTFFNTNDNy0yRDEwLTM1NDUtQkMwNS05RUQ4QTIx
MDlCRUMYAAAAAQIAAIEAAAABAAgA7xcAAAEACAAAAAAAAAAAAAEA
AAABAQAALwAAAJ0AAAABAgAAMDdkMjNiNDkyNDdiYWExYmZjMzA5
M2FmZmJkYjdkYmJhNjc2NjNlYjswMDAwMDAwMDswMDAwMDAwMDsw
MDAwMDAwMDAwMDAwMDIwO2NvbS5hcHBsZS5hcHAtc2FuZGJveC5y
ZWFkLXdyaXRlOzAwMDAwMDAxOzAxMDAwMDAyOzAwMDAwMDAwMDAw
NmMzYzQ7L3VzZXJzL2FkbWluAAAAAOQAAAD+////AQAAAAAAAAAS
AAAABBAAADAAAAAAAAAABRAAAGAAAAAAAAAAEBAAAIAAAAAAAAAA
QBAAAHAAAAAAAAAAAiAAAFQBAAAAAAAABSAAAMQAAAAAAAAAECAA
ANQAAAAAAAAAESAAAAgBAAAAAAAAEiAAAOgAAAAAAAAAEyAAAPgA
AAAAAAAAICAAADQBAAAAAAAAMCAAAKAAAAAAAAAAAcAAAKgAAAAA
AAAAEcAAACAAAAAAAAAAEsAAALgAAAAAAAAAAdAAAKAAAAAAAAAA
ENAAAAQAAAAAAAAAgPAAAGABAAAAAAAA
</data>
<key>name</key>
<string>admin</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va1gDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAPAIAAAQAAAADAwAAAAIAAAUAAAABAQAAVXNlcnMA
AAAFAAAAAQEAAGFkbWluAAAACQAAAAEBAABEb3dubG9hZHMAAAAM
AAAAAQYAABAAAAAgAAAAMAAAAAgAAAAEAwAA/JcCAAAAAAAIAAAA
BAMAAMTDBgAAAAAACAAAAAQDAADHwwYAAAAAAAwAAAABBgAAWAAA
AGgAAAB4AAAACAAAAAAEAABButchwgAAABgAAAABAgAAAgAAAAAA
AAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAIAAAABAMAAAEAAAAA
AAAABAAAAAMDAAD1AQAACAAAAAEJAABmaWxlOi8vLwwAAAABAQAA
TWFjaW50b3NoIEhECAAAAAQDAAAAIMHMDwAAAAgAAAAABAAAQbrX
IPYAAAAkAAAAAQEAADI1MUU1M0M3LTJEMTAtMzU0NS1CQzA1LTlF
RDhBMjEwOUJFQxgAAAABAgAAgQAAAAEACADvFwAAAQAIAAAAAAAA
AAAAAQAAAAEBAAAvAAAApwAAAAECAABhOTc3NGRlNTJkMTgwYjll
MjhlMjg5NDg5NjdlMjk1MDJhNGE1MTdiOzAwMDAwMDAwOzAwMDAw
MDAwOzAwMDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFwcC1zYW5k
Ym94LnJlYWQtd3JpdGU7MDAwMDAwMDE7MDEwMDAwMDI7MDAwMDAw
MDAwMDA2YzNjNzsvdXNlcnMvYWRtaW4vZG93bmxvYWRzAADkAAAA
/v///wEAAAAAAAAAEgAAAAQQAABEAAAAAAAAAAUQAACIAAAAAAAA
ABAQAACsAAAAAAAAAEAQAACcAAAAAAAAAAIgAACAAQAAAAAAAAUg
AADwAAAAAAAAABAgAAAAAQAAAAAAABEgAAA0AQAAAAAAABIgAAAU
AQAAAAAAABMgAAAkAQAAAAAAACAgAABgAQAAAAAAADAgAADMAAAA
AAAAAAHAAADUAAAAAAAAABHAAAAgAAAAAAAAABLAAADkAAAAAAAA
AAHQAADMAAAAAAAAABDQAAAEAAAAAAAAAIDwAACMAQAAAAAAAA==
</data>
<key>name</key>
<string>Downloads</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va1gDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAPAIAAAQAAAADAwAAAAIAAAUAAAABAQAAVXNlcnMA
AAAFAAAAAQEAAGFkbWluAAAACQAAAAEBAABEb2N1bWVudHMAAAAM
AAAAAQYAABAAAAAgAAAAMAAAAAgAAAAEAwAA/JcCAAAAAAAIAAAA
BAMAAMTDBgAAAAAACAAAAAQDAADFwwYAAAAAAAwAAAABBgAAWAAA
AGgAAAB4AAAACAAAAAAEAABButchwgAAABgAAAABAgAAAgAAAAAA
AAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAIAAAABAMAAAEAAAAA
AAAABAAAAAMDAAD1AQAACAAAAAEJAABmaWxlOi8vLwwAAAABAQAA
TWFjaW50b3NoIEhECAAAAAQDAAAAIMHMDwAAAAgAAAAABAAAQbrX
IPYAAAAkAAAAAQEAADI1MUU1M0M3LTJEMTAtMzU0NS1CQzA1LTlF
RDhBMjEwOUJFQxgAAAABAgAAgQAAAAEACADvFwAAAQAIAAAAAAAA
AAAAAQAAAAEBAAAvAAAApwAAAAECAAA3N2I4ZWY1ZGZiMjJiNmJi
YzE0NDU2ODlhYjZhOGM4ZTBiNjlmNmM0OzAwMDAwMDAwOzAwMDAw
MDAwOzAwMDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFwcC1zYW5k
Ym94LnJlYWQtd3JpdGU7MDAwMDAwMDE7MDEwMDAwMDI7MDAwMDAw
MDAwMDA2YzNjNTsvdXNlcnMvYWRtaW4vZG9jdW1lbnRzAADkAAAA
/v///wEAAAAAAAAAEgAAAAQQAABEAAAAAAAAAAUQAACIAAAAAAAA
ABAQAACsAAAAAAAAAEAQAACcAAAAAAAAAAIgAACAAQAAAAAAAAUg
AADwAAAAAAAAABAgAAAAAQAAAAAAABEgAAA0AQAAAAAAABIgAAAU
AQAAAAAAABMgAAAkAQAAAAAAACAgAABgAQAAAAAAADAgAADMAAAA
AAAAAAHAAADUAAAAAAAAABHAAAAgAAAAAAAAABLAAADkAAAAAAAA
AAHQAADMAAAAAAAAABDQAAAEAAAAAAAAAIDwAACMAQAAAAAAAA==
</data>
<key>name</key>
<string>Documents</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va1QDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAOAIAAAQAAAADAwAAAAIAAAUAAAABAQAAVXNlcnMA
AAAFAAAAAQEAAGFkbWluAAAABwAAAAEBAABEZXNrdG9wAAwAAAAB
BgAAEAAAACAAAAAwAAAACAAAAAQDAAD8lwIAAAAAAAgAAAAEAwAA
xMMGAAAAAAAIAAAABAMAANXDBgAAAAAADAAAAAEGAABUAAAAZAAA
AHQAAAAIAAAAAAQAAEG61yHCAAAAGAAAAAECAAACAAAAAAAAAA8A
AAAAAAAAAAAAAAAAAAAAAAAAAQUAAAgAAAAEAwAAAQAAAAAAAAAE
AAAAAwMAAPUBAAAIAAAAAQkAAGZpbGU6Ly8vDAAAAAEBAABNYWNp
bnRvc2ggSEQIAAAABAMAAAAgwcwPAAAACAAAAAAEAABButcg9gAA
ACQAAAABAQAAMjUxRTUzQzctMkQxMC0zNTQ1LUJDMDUtOUVEOEEy
MTA5QkVDGAAAAAECAACBAAAAAQAIAO8XAAABAAgAAAAAAAAAAAAB
AAAAAQEAAC8AAAClAAAAAQIAAGJhNjNmOWJlYTY0NGJmMWJkMjkx
Y2IxYjExNjJjYmVlYTA1OTNmOWI7MDAwMDAwMDA7MDAwMDAwMDA7
MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBwLXNhbmRib3gu
cmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwMjswMDAwMDAwMDAw
MDZjM2Q1Oy91c2Vycy9hZG1pbi9kZXNrdG9wAAAAAOQAAAD+////
AQAAAAAAAAASAAAABBAAAEAAAAAAAAAABRAAAIQAAAAAAAAAEBAA
AKgAAAAAAAAAQBAAAJgAAAAAAAAAAiAAAHwBAAAAAAAABSAAAOwA
AAAAAAAAECAAAPwAAAAAAAAAESAAADABAAAAAAAAEiAAABABAAAA
AAAAEyAAACABAAAAAAAAICAAAFwBAAAAAAAAMCAAAMgAAAAAAAAA
AcAAANAAAAAAAAAAEcAAACAAAAAAAAAAEsAAAOAAAAAAAAAAAdAA
AMgAAAAAAAAAENAAAAQAAAAAAAAAgPAAAIgBAAAAAAAA
</data>
<key>name</key>
<string>Desktop</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va0QEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAATAMAAAQAAAADAwAAAAIAAAYAAAABAQAAU3lzdGVt
AAAHAAAAAQEAAExpYnJhcnkADAAAAAEBAABDb3JlU2VydmljZXMK
AAAAAQEAAEZpbmRlci5hcHAAAAgAAAABAQAAQ29udGVudHMJAAAA
AQEAAFJlc291cmNlcwAAAAsAAAABAQAATXlMaWJyYXJpZXMAGAAA
AAEBAABteURvY3VtZW50cy5jYW5uZWRTZWFyY2ggAAAAAQYAABAA
AAAgAAAAMAAAAEQAAABYAAAAaAAAAHwAAACQAAAACAAAAAQDAAAk
AAAAAAAAAAgAAAAEAwAAJQAAAAAAAAAIAAAABAMAADEAAAAAAAAA
CAAAAAQDAAAUXAIAAAAAAAgAAAAEAwAAFVwCAAAAAAAIAAAABAMA
ABpcAgAAAAAACAAAAAQDAAAQXQIAAAAAAAgAAAAEAwAAEV0CAAAA
AAAgAAAAAQYAANgAAADoAAAA+AAAAAgBAAAYAQAAKAEAADgBAABI
AQAACAAAAAAEAABBusD7hQAAABgAAAABAgAAAgAAAAAAAAAPAAAA
AAAAAAAAAAAAAAAAAAAAAAEFAAAIAAAAAQkAAGZpbGU6Ly8vDAAA
AAEBAABNYWNpbnRvc2ggSEQIAAAABAMAAAAgwcwPAAAACAAAAAAE
AABButcg9gAAACQAAAABAQAAMjUxRTUzQzctMkQxMC0zNTQ1LUJD
MDUtOUVEOEEyMTA5QkVDGAAAAAECAACBAAAAAQAIAO8XAAABAAgA
AAAAAAAAAAABAAAAAQEAAC8AAADwAAAAAQIAADNhNmMzNGExMzIy
YzlmNzE2MWZjNTAyMGJkNGFhNDQxODg4NDBhZTE7MDAwMDAwMDA7
MDAwMDAwMDA7MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBw
LXNhbmRib3gucmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwMjsw
MDAwMDAwMDAwMDI1ZDExOy9zeXN0ZW0vbGlicmFyeS9jb3Jlc2Vy
dmljZXMvZmluZGVyLmFwcC9jb250ZW50cy9yZXNvdXJjZXMvbXls
aWJyYXJpZXMvbXlkb2N1bWVudHMuY2FubmVkc2VhcmNoAMAAAAD+
////AQAAAAAAAAAPAAAABBAAALAAAAAAAAAABRAAAFgBAAAAAAAA
EBAAAJABAAAAAAAAQBAAAIABAAAAAAAAAiAAAEgCAAAAAAAABSAA
ALgBAAAAAAAAECAAAMgBAAAAAAAAESAAAPwBAAAAAAAAEiAAANwB
AAAAAAAAEyAAAOwBAAAAAAAAICAAACgCAAAAAAAAMCAAALABAAAA
AAAAAdAAALABAAAAAAAAENAAAAQAAAAAAAAAgPAAAFQCAAAAAAAA
</data>
<key>name</key>
<string>All My Files</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va0AEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAASAMAAAQAAAADAwAAAAIAAAcAAAABAQAAVm9sdW1l
cwAPAAAAAQEAAFBhcmFsbGVscyBUb29scwAIAAAAAQYAABAAAAAg
AAAACAAAAAQDAAAuOAAAAAAAAAgAAAAEAwAAAgAAAAAAAAAIAAAA
AQYAAEgAAABYAAAACAAAAAAEAABBusSZDAAAABgAAAABAgAACgAA
AAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAiAAAAAQkAAGZp
bGU6Ly8vVm9sdW1lcy9QYXJhbGxlbHMlMjBUb29scy8AAAgAAAAE
AwAAAECaAQAAAAAkAAAAAQEAADcxMUFCQUY5LUNGODItM0VCRi1B
MTVGLTI1NDY2Q0Q1QzdCOBgAAAABAgAA6QAAAAEACADvFwAAAQAI
AAAAAAAAAAAAGAAAAAEBAAAvVm9sdW1lcy9QYXJhbGxlbHMgVG9v
bHMIAAAAAQkAAGZpbGU6Ly8vDAAAAAEBAABNYWNpbnRvc2ggSEQI
AAAABAMAAAAgwcwPAAAACAAAAAAEAABButcg9gAAACQAAAABAQAA
MjUxRTUzQzctMkQxMC0zNTQ1LUJDMDUtOUVEOEEyMTA5QkVDGAAA
AAECAACBAAAAAQAIAO8XAAABAAgAAAAAAAAAAAABAAAAAQEAAC8A
AABgAAAA/v///wDwAAAAAAAABwAAAAIgAADoAQAAAAAAAAUgAABY
AQAAAAAAABAgAABoAQAAAAAAABEgAACcAQAAAAAAABIgAAB8AQAA
AAAAABMgAACMAQAAAAAAACAgAADIAQAAAAAAAAQAAAADAwAAAPAA
AAQAAAADAwAAAAAAAAQAAAADAwAAAQAAAAwAAAABBgAAXAIAAGgC
AAB0AgAAqQAAAAECAAA4YmYyNjQzYjNkNDcxZTRmMjcwNWRkZWEx
MDMxODE0MWNjNTMwMmFmOzAwMDAwMDAwOzAwMDAwMDAwOzAwMDAw
MDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQt
d3JpdGU7MDAwMDAwMDE7MDEwMDAwMDY7MDAwMDAwMDAwMDAwMDAw
Mjsvdm9sdW1lcy9wYXJhbGxlbHMgdG9vbHMAAAAAwAAAAP7///8B
AAAA9AEAAA8AAAAEEAAAOAAAAAAAAAAFEAAAaAAAAAAAAAAQEAAA
iAAAAAAAAABAEAAAeAAAAAAAAAAAIAAAgAIAAAAAAAACIAAAOAEA
AAAAAAAFIAAAsAAAAAAAAAAQIAAAIAAAAAAAAAARIAAA7AAAAAAA
AAASIAAA3AAAAAAAAAATIAAAeAAAAAAAAAAgIAAAGAEAAAAAAAAB
0AAAqAAAAAAAAAAQ0AAABAAAAAAAAACA8AAAlAIAAAAAAAA=
</data>
<key>name</key>
<string>Parallels Tools</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va0AEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAASAMAAAQAAAADAwAAAAIAAAcAAAABAQAAVm9sdW1l
cwAPAAAAAQEAAFBhcmFsbGVscyBUb29scwAIAAAAAQYAABAAAAAg
AAAACAAAAAQDAAAuOAAAAAAAAAgAAAAEAwAAAgAAAAAAAAAIAAAA
AQYAAEgAAABYAAAACAAAAAAEAABBusSZDAAAABgAAAABAgAACgAA
AAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAiAAAAAQkAAGZp
bGU6Ly8vVm9sdW1lcy9QYXJhbGxlbHMlMjBUb29scy8AAAgAAAAE
AwAAAECaAQAAAAAkAAAAAQEAADcxMUFCQUY5LUNGODItM0VCRi1B
MTVGLTI1NDY2Q0Q1QzdCOBgAAAABAgAA6QAAAAEACADvFwAAAQAI
AAAAAAAAAAAAGAAAAAEBAAAvVm9sdW1lcy9QYXJhbGxlbHMgVG9v
bHMIAAAAAQkAAGZpbGU6Ly8vDAAAAAEBAABNYWNpbnRvc2ggSEQI
AAAABAMAAAAgwcwPAAAACAAAAAAEAABButcg9gAAACQAAAABAQAA
MjUxRTUzQzctMkQxMC0zNTQ1LUJDMDUtOUVEOEEyMTA5QkVDGAAA
AAECAACBAAAAAQAIAO8XAAABAAgAAAAAAAAAAAABAAAAAQEAAC8A
AABgAAAA/v///wDwAAAAAAAABwAAAAIgAADoAQAAAAAAAAUgAABY
AQAAAAAAABAgAABoAQAAAAAAABEgAACcAQAAAAAAABIgAAB8AQAA
AAAAABMgAACMAQAAAAAAACAgAADIAQAAAAAAAAQAAAADAwAAAPAA
AAQAAAADAwAAAAAAAAQAAAADAwAAAQAAAAwAAAABBgAAXAIAAGgC
AAB0AgAAqQAAAAECAABmM2FjMDM4ZDhkZWE1MjhhM2IyNGFjNGM2
OGRiOGFhNmZjZDY2NmM5OzAwMDAwMDAwOzAwMDAwMDAwOzAwMDAw
MDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQt
d3JpdGU7MDAwMDAwMDE7MDEwMDAwMDU7MDAwMDAwMDAwMDAwMDAw
Mjsvdm9sdW1lcy9wYXJhbGxlbHMgdG9vbHMAAAAAwAAAAP7///8B
AAAA9AEAAA8AAAAEEAAAOAAAAAAAAAAFEAAAaAAAAAAAAAAQEAAA
iAAAAAAAAABAEAAAeAAAAAAAAAAAIAAAgAIAAAAAAAACIAAAOAEA
AAAAAAAFIAAAsAAAAAAAAAAQIAAAIAAAAAAAAAARIAAA7AAAAAAA
AAASIAAA3AAAAAAAAAATIAAAeAAAAAAAAAAgIAAAGAEAAAAAAAAB
0AAAqAAAAAAAAAAQ0AAABAAAAAAAAACA8AAAlAIAAAAAAAA=
</data>
<key>name</key>
<string>Parallels Tools</string>
</dict>
<dict>
<key>file-bookmark</key>
<data>
Ym9va0gEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUAMAAAQAAAADAwAAAAIAAAcAAAABAQAAVm9sdW1l
cwAQAAAAAQEAAE9TIFggQmFzZSBTeXN0ZW0IAAAAAQYAABAAAAAg
AAAACAAAAAQDAAAuOAAAAAAAAAgAAAAEAwAAAgAAAAAAAAAIAAAA
AQYAAEgAAABYAAAACAAAAAAEAABBus/quQAAABgAAAABAgAACgAA
AAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAnAAAAAQkAAGZp
bGU6Ly8vVm9sdW1lcy9PUyUyMFglMjBCYXNlJTIwU3lzdGVtLwAI
AAAABAMAAAAg86IBAAAAJAAAAAEBAAAyRDk4NEZENi1GMDhGLTM1
NjQtODYwNS0yMzU4MENDODlFRUYYAAAAAQIAAOkAAAABAAgA7xcA
AAEACAAAAAAAAAAAABkAAAABAQAAL1ZvbHVtZXMvT1MgWCBCYXNl
IFN5c3RlbQAAAAgAAAABCQAAZmlsZTovLy8MAAAAAQEAAE1hY2lu
dG9zaCBIRAgAAAAEAwAAACDBzA8AAAAIAAAAAAQAAEG61yD2AAAA
JAAAAAEBAAAyNTFFNTNDNy0yRDEwLTM1NDUtQkMwNS05RUQ4QTIx
MDlCRUMYAAAAAQIAAIEAAAABAAgA7xcAAAEACAAAAAAAAAAAAAEA
AAABAQAALwAAAGAAAAD+////APAAAAAAAAAHAAAAAiAAAPABAAAA
AAAABSAAAGABAAAAAAAAECAAAHABAAAAAAAAESAAAKQBAAAAAAAA
EiAAAIQBAAAAAAAAEyAAAJQBAAAAAAAAICAAANABAAAAAAAABAAA
AAMDAAAA8AAABAAAAAMDAAAAAAAABAAAAAMDAAABAAAADAAAAAEG
AABkAgAAcAIAAHwCAACqAAAAAQIAADNiZmIwMTdmZjJlNWNkYWY1
NjMyZTY0N2E3YmJkMGY5Y2ZkMjdiZTM7MDAwMDAwMDA7MDAwMDAw
MDA7MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBwLXNhbmRi
b3gucmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwNjswMDAwMDAw
MDAwMDAwMDAyOy92b2x1bWVzL29zIHggYmFzZSBzeXN0ZW0AAADA
AAAA/v///wEAAAD8AQAADwAAAAQQAAA4AAAAAAAAAAUQAABoAAAA
AAAAABAQAACIAAAAAAAAAEAQAAB4AAAAAAAAAAAgAACIAgAAAAAA
AAIgAAA8AQAAAAAAAAUgAACwAAAAAAAAABAgAAAgAAAAAAAAABEg
AADwAAAAAAAAABIgAADgAAAAAAAAABMgAAB4AAAAAAAAACAgAAAc
AQAAAAAAAAHQAACoAAAAAAAAABDQAAAEAAAAAAAAAIDwAACcAgAA
AAAAAA==
</data>
<key>name</key>
<string>OS X Base System</string>
</dict>
</array>
<key>FXSidebarUpgradedToTenTen</key>
<true/>
<key>FXToolbarUpgradedToTenEight</key>
<integer>1</integer>
<key>FXToolbarUpgradedToTenNine</key>
<integer>2</integer>
<key>FXToolbarUpgradedToTenSeven</key>
<integer>1</integer>
<key>FavoriteTagNames</key>
<array>
<string></string>
<string>Red</string>
<string>Orange</string>
<string>Yellow</string>
<string>Green</string>
<string>Blue</string>
<string>Purple</string>
<string>Gray</string>
</array>
<key>LastTrashState</key>
<false/>
<key>MyDocsLibrarySavedViewStyle</key>
<string>clmv</string>
<key>MyDocsLibrarySavedViewStyleVersion</key>
<string>%00%00%00%01</string>
<key>MyDocsLibrarySearchViewSettings</key>
<dict>
<key>WindowState</key>
<dict>
<key>ContainerShowSidebar</key>
<true/>
<key>PreviewPaneVisibility</key>
<false/>
<key>ShowPathbar</key>
<false/>
<key>ShowSidebar</key>
<true/>
<key>ShowStatusBar</key>
<false/>
<key>ShowTabView</key>
<false/>
<key>ShowToolbar</key>
<true/>
<key>SidebarWidth</key>
<integer>192</integer>
<key>WindowBounds</key>
<string>{{127, 246}, {770, 437}}</string>
</dict>
</dict>
<key>NSToolbar Configuration Browser</key>
<dict>
<key>TB Display Mode</key>
<integer>2</integer>
<key>TB Icon Size Mode</key>
<integer>1</integer>
<key>TB Is Shown</key>
<integer>1</integer>
<key>TB Size Mode</key>
<integer>1</integer>
</dict>
<key>NewWindowTarget</key>
<string>PfHm</string>
<key>NewWindowTargetPath</key>
<string>file:///Users/admin/</string>
<key>PreferencesWindow.LastSelection</key>
<string>GNRL</string>
<key>ShowExternalHardDrivesOnDesktop</key>
<true/>
<key>ShowHardDrivesOnDesktop</key>
<true/>
<key>ShowMountedServersOnDesktop</key>
<true/>
<key>ShowRecentTags</key>
<false/>
<key>ShowRemovableMediaOnDesktop</key>
<true/>
<key>StandardViewOptions</key>
<dict>
<key>ColumnViewOptions</key>
<dict>
<key>ArrangeBy</key>
<string>dnam</string>
<key>ColumnShowFolderArrow</key>
<true/>
<key>ColumnShowIcons</key>
<true/>
<key>ColumnWidth</key>
<integer>205</integer>
<key>FontSize</key>
<integer>13</integer>
<key>PreviewDisclosureState</key>
<true/>
<key>SharedArrangeBy</key>
<string>kipl</string>
<key>ShowIconThumbnails</key>
<true/>
<key>ShowPreview</key>
<true/>
</dict>
</dict>
<key>StandardViewSettings</key>
<dict>
<key>ExtendedListViewSettings</key>
<dict>
<key>calculateAllSizes</key>
<false/>
<key>columns</key>
<array>
<dict>
<key>ascending</key>
<true/>
<key>identifier</key>
<string>name</string>
<key>visible</key>
<true/>
<key>width</key>
<integer>300</integer>
</dict>
<dict>
<key>ascending</key>
<false/>
<key>identifier</key>
<string>dateModified</string>
<key>visible</key>
<true/>
<key>width</key>
<integer>181</integer>
</dict>
<dict>
<key>ascending</key>
<false/>
<key>identifier</key>
<string>dateCreated</string>
<key>visible</key>
<false/>
<key>width</key>
<integer>181</integer>
</dict>
<dict>
<key>ascending</key>
<false/>
<key>identifier</key>
<string>size</string>
<key>visible</key>
<true/>
<key>width</key>
<integer>97</integer>
</dict>
<dict>
<key>ascending</key>
<true/>
<key>identifier</key>
<string>kind</string>
<key>visible</key>
<true/>
<key>width</key>
<integer>115</integer>
</dict>
<dict>
<key>ascending</key>
<true/>
<key>identifier</key>
<string>label</string>
<key>visible</key>
<false/>
<key>width</key>
<integer>100</integer>
</dict>
<dict>
<key>ascending</key>
<true/>
<key>identifier</key>
<string>version</string>
<key>visible</key>
<false/>
<key>width</key>
<integer>75</integer>
</dict>
<dict>
<key>ascending</key>
<true/>
<key>identifier</key>
<string>comments</string>
<key>visible</key>
<false/>
<key>width</key>
<integer>300</integer>
</dict>
<dict>
<key>ascending</key>
<false/>
<key>identifier</key>
<string>dateLastOpened</string>
<key>visible</key>
<false/>
<key>width</key>
<integer>200</integer>
</dict>
</array>
<key>iconSize</key>
<real>16</real>
<key>showIconPreview</key>
<true/>
<key>sortColumn</key>
<string>name</string>
<key>textSize</key>
<real>12</real>
<key>useRelativeDates</key>
<true/>
<key>viewOptionsVersion</key>
<integer>1</integer>
</dict>
<key>IconViewSettings</key>
<dict>
<key>arrangeBy</key>
<string>none</string>
<key>backgroundColorBlue</key>
<real>1</real>
<key>backgroundColorGreen</key>
<real>1</real>
<key>backgroundColorRed</key>
<real>1</real>
<key>backgroundType</key>
<integer>0</integer>
<key>gridOffsetX</key>
<real>0.0</real>
<key>gridOffsetY</key>
<real>0.0</real>
<key>gridSpacing</key>
<real>54</real>
<key>iconSize</key>
<real>64</real>
<key>labelOnBottom</key>
<true/>
<key>showIconPreview</key>
<true/>
<key>showItemInfo</key>
<false/>
<key>textSize</key>
<real>12</real>
<key>viewOptionsVersion</key>
<integer>1</integer>
</dict>
<key>ListViewSettings</key>
<dict>
<key>calculateAllSizes</key>
<false/>
<key>columns</key>
<dict>
<key>comments</key>
<dict>
<key>ascending</key>
<true/>
<key>index</key>
<integer>7</integer>
<key>visible</key>
<false/>
<key>width</key>
<integer>300</integer>
</dict>
<key>dateCreated</key>
<dict>
<key>ascending</key>
<false/>
<key>index</key>
<integer>2</integer>
<key>visible</key>
<false/>
<key>width</key>
<integer>181</integer>
</dict>
<key>dateLastOpened</key>
<dict>
<key>ascending</key>
<false/>
<key>index</key>
<integer>8</integer>
<key>visible</key>
<false/>
<key>width</key>
<integer>200</integer>
</dict>
<key>dateModified</key>
<dict>
<key>ascending</key>
<false/>
<key>index</key>
<integer>1</integer>
<key>visible</key>
<true/>
<key>width</key>
<integer>181</integer>
</dict>
<key>kind</key>
<dict>
<key>ascending</key>
<true/>
<key>index</key>
<integer>4</integer>
<key>visible</key>
<true/>
<key>width</key>
<integer>115</integer>
</dict>
<key>label</key>
<dict>
<key>ascending</key>
<true/>
<key>index</key>
<integer>5</integer>
<key>visible</key>
<false/>
<key>width</key>
<integer>100</integer>
</dict>
<key>name</key>
<dict>
<key>ascending</key>
<true/>
<key>index</key>
<integer>0</integer>
<key>visible</key>
<true/>
<key>width</key>
<integer>300</integer>
</dict>
<key>size</key>
<dict>
<key>ascending</key>
<false/>
<key>index</key>
<integer>3</integer>
<key>visible</key>
<true/>
<key>width</key>
<integer>97</integer>
</dict>
<key>version</key>
<dict>
<key>ascending</key>
<true/>
<key>index</key>
<integer>6</integer>
<key>visible</key>
<false/>
<key>width</key>
<integer>75</integer>
</dict>
</dict>
<key>iconSize</key>
<real>16</real>
<key>showIconPreview</key>
<true/>
<key>sortColumn</key>
<string>name</string>
<key>textSize</key>
<real>12</real>
<key>useRelativeDates</key>
<true/>
<key>viewOptionsVersion</key>
<integer>1</integer>
</dict>
<key>SettingsType</key>
<string>StandardViewSettings</string>
</dict>
<key>ViewOptionsWindow.Location</key>
<string>{735, 186}</string>
</dict>
</plist>

Просмотреть файл

@ -1,404 +0,0 @@
<?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>favoriteitems</key>
<dict>
<key>Controller</key>
<string>CustomListItems</string>
<key>CustomListItems</key>
<array>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.SpecialItemIdentifier</key>
<string>com.apple.LSSharedFileList.IsMeetingRoom</string>
</dict>
<key>Name</key>
<string>domain-AirDrop</string>
<key>URL</key>
<string>nwnode://domain-AirDrop</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACUAAMAAQAA0UyZ9gAASCsAAAAAAAAAAgAAAIsA
ANAhLjsAAAAACSD//gAAAAAAAAAA/////wABAAAADgAa
AAwAQQBwAHAAbABpAGMAYQB0AGkAbwBuAHMADwAaAAwA
TQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgAMQXBwbGlj
YXRpb25zABMAAS8A//8AAA==
</data>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.Binding</key>
<data>
ZG5pYgAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAc3BwYQIAAAAAAAAA
</data>
<key>com.apple.LSSharedFileList.TemplateSystemSelector</key>
<integer>1935819120</integer>
</dict>
<key>Name</key>
<string>Applications</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACgAAMAAQAA0UyZ9gAASCsAAAAAAAbDxAAGw9UA
ANFMmsIAAAAACSD//gAAAAAAAAAA/////wABAAgABsPE
AAKX/AAOABAABwBEAGUAcwBrAHQAbwBwAA8AGgAMAE0A
YQBjAGkAbgB0AG8AcwBoACAASABEABIAE1VzZXJzL2Fk
bWluL0Rlc2t0b3AAABMAAS8AABUAAgAM//8AAA==
</data>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.Binding</key>
<data>
ZG5pYgAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAa3NlZAIAAAAAAAAA
</data>
<key>com.apple.LSSharedFileList.TemplateSystemSelector</key>
<integer>1935819892</integer>
</dict>
<key>Name</key>
<string>Desktop</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACmAAMAAQAA0UyZ9gAASCsAAAAAAAbDxAAGw8UA
ANFMmsIAAAAACSD//gAAAAAAAAAA/////wABAAgABsPE
AAKX/AAOABQACQBEAG8AYwB1AG0AZQBuAHQAcwAPABoA
DABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASABVVc2Vy
cy9hZG1pbi9Eb2N1bWVudHMAABMAAS8AABUAAgAM//8A
AA==
</data>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.Binding</key>
<data>
ZG5pYgAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAc2NvZAIAAAAAAAAA
</data>
<key>com.apple.LSSharedFileList.TemplateSystemSelector</key>
<integer>1935819875</integer>
</dict>
<key>Name</key>
<string>Documents</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACmAAMAAQAA0UyZ9gAASCsAAAAAAAbDxAAGw8cA
ANFMmsIAAAAACSD//gAAAAAAAAAA/////wABAAgABsPE
AAKX/AAOABQACQBEAG8AdwBuAGwAbwBhAGQAcwAPABoA
DABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASABVVc2Vy
cy9hZG1pbi9Eb3dubG9hZHMAABMAAS8AABUAAgAM//8A
AA==
</data>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.Binding</key>
<data>
ZG5pYgAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAZm53ZAIAAAAAAAAA
</data>
<key>com.apple.LSSharedFileList.TemplateSystemSelector</key>
<integer>1935819884</integer>
</dict>
<key>Name</key>
<string>Downloads</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACQAAMAAQAA0UyZ9gAASCsAAAAAAAKX/AAGw8QA
ANFMn6QAAAAACSD//gAAAAAAAAAA/////wABAAQAApf8
AA4ADAAFAGEAZABtAGkAbgAPABoADABNAGEAYwBpAG4A
dABvAHMAaAAgAEgARAASAAtVc2Vycy9hZG1pbgAAEwAB
LwAAFQACAAz//wAA
</data>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.Binding</key>
<data>
ZG5pYgAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAZGxmdQIAAAAAAAAA
</data>
<key>com.apple.LSSharedFileList.TemplateSystemSelector</key>
<integer>1935820909</integer>
</dict>
<key>Name</key>
<string>admin</string>
</dict>
</array>
<key>CustomListProperties</key>
<dict>
<key>com.apple.LSSharedFileList.Restricted.upgraded</key>
<integer>9027</integer>
</dict>
</dict>
<key>finderprojects</key>
<dict>
<key>Controller</key>
<string>CustomListItems</string>
<key>CustomListItems</key>
<array>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>6</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Red</string>
<key>URL</key>
<string>x-apple-findertag:Red</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>7</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Orange</string>
<key>URL</key>
<string>x-apple-findertag:Orange</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>5</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Yellow</string>
<key>URL</key>
<string>x-apple-findertag:Yellow</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>2</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Green</string>
<key>URL</key>
<string>x-apple-findertag:Green</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>4</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Blue</string>
<key>URL</key>
<string>x-apple-findertag:Blue</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>3</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Purple</string>
<key>URL</key>
<string>x-apple-findertag:Purple</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemLabel</key>
<integer>1</integer>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
</dict>
<key>Name</key>
<string>Gray</string>
<key>URL</key>
<string>x-apple-findertag:Gray</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
<key>kLSSharedTagFileListItemShowing</key>
<false/>
</dict>
<key>Name</key>
<string>Work</string>
<key>URL</key>
<string>x-apple-findertag:Work</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
<key>kLSSharedTagFileListItemShowing</key>
<false/>
</dict>
<key>Name</key>
<string>Home</string>
<key>URL</key>
<string>x-apple-findertag:Home</string>
</dict>
<dict>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.ItemIsHidden</key>
<false/>
<key>kLSSharedTagFileListItemPinned</key>
<false/>
<key>kLSSharedTagFileListItemShowing</key>
<false/>
</dict>
<key>Name</key>
<string>Important</string>
<key>URL</key>
<string>x-apple-findertag:Important</string>
</dict>
</array>
<key>CustomListProperties</key>
<dict>
<key>Version</key>
<integer>4</integer>
</dict>
</dict>
<key>networkbrowser</key>
<dict>
<key>Controller</key>
<string>CustomListItems</string>
<key>CustomListItems</key>
<array/>
<key>CustomListProperties</key>
<dict>
<key>com.apple.NetworkBrowser.backToMyMacEnabled</key>
<false/>
<key>com.apple.NetworkBrowser.bonjourEnabled</key>
<false/>
</dict>
</dict>
<key>systemitems</key>
<dict>
<key>Controller</key>
<string>VolumesList</string>
<key>CustomListProperties</key>
<dict>
<key>com.apple.LSSharedFileList.VolumesListMigrated</key>
<true/>
</dict>
<key>ShowEjectables</key>
<true/>
<key>ShowHardDisks</key>
<true/>
<key>ShowRemovable</key>
<true/>
<key>ShowServers</key>
<true/>
<key>VolumesList</key>
<array>
<dict>
<key>EntryType</key>
<integer>16</integer>
<key>Name</key>
<string>Computer</string>
<key>SpecialID</key>
<integer>1919905652</integer>
<key>Visibility</key>
<string>NeverVisible</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACIAAMAAQAA0UyZ9gAASCsAAAAAAAAAAQAAAAIA
ANFMmfYAAAAACSD//gAAAAAAAAAA/////wABAAAADgAa
AAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQADwAaAAwA
TQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgAAABMAAS8A
//8AAA==
</data>
<key>CustomItemProperties</key>
<dict>
<key>com.apple.LSSharedFileList.SeenAsBootVolume</key>
<true/>
<key>com.apple.LSSharedFileList.TemplateSystemSelector</key>
<integer>1935821166</integer>
</dict>
<key>EntryType</key>
<integer>261</integer>
<key>Name</key>
<string>Macintosh HD</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACGAAMAAQAA0UyZ9gAASCsAAAAAAAAAAgAE86gA
ANA1F+UAAAAACSD//gAAAAAAAAAA/////wABAAAADgAQ
AAcATgBlAHQAdwBvAHIAawAPABoADABNAGEAYwBpAG4A
dABvAHMAaAAgAEgARAASAAdOZXR3b3JrAAATAAEvAP//
AAA=
</data>
<key>EntryType</key>
<integer>16</integer>
<key>Name</key>
<string>Network</string>
<key>SpecialID</key>
<integer>1735288180</integer>
<key>Visibility</key>
<string>NeverVisible</string>
</dict>
<dict>
<key>Alias</key>
<data>
AAAAAACwAAMAAQAA0UVjuQAASCsAAAAFAAAAAQAAAAIA
ANFFY7kAAAAACQL//gAAAAAAAAAA/////wABAAAADgAi
ABAATwBTACAAWAAgAEIAYQBzAGUAIABTAHkAcwB0AGUA
bQAPACIAEABPAFMAIABYACAAQgBhAHMAZQAgAFMAeQBz
AHQAZQBtABIAAAATABkvVm9sdW1lcy9PUyBYIEJhc2Ug
U3lzdGVtAP//AAA=
</data>
<key>EntryType</key>
<integer>1027</integer>
<key>Name</key>
<string>OS X Base System</string>
</dict>
</array>
</dict>
</dict>
</plist>

40
libraries/xcode.rb Normal file
Просмотреть файл

@ -0,0 +1,40 @@
module Xcode
module Helper
BASE_COMMAND ||= '/usr/local/bin/xcversion'.freeze
def xcode_already_installed?(version)
xcversion_output = shell_out!("#{BASE_COMMAND} installed").stdout.split
installed_xcodes = xcversion_output.values_at(*xcversion_output.each_index.select(&:even?))
installed_xcodes.include?(version)
end
def simulator_already_installed?(version)
available_simulator_versions.include?("#{version} Simulator (installed)")
end
def highest_semantic_simulator_version(major_version, simulators)
requirement = Gem::Dependency.new('iOS', "~> #{major_version}")
highest = simulators.select { |name, vers| requirement.match?(name, vers) }.max
if highest.nil?
Chef::Application.fatal!("iOS #{major_version} Simulator no longer available from Apple!")
else
highest.join(' ')
end
end
def included_simulator_major_version
version_matcher = /\d{1,2}\.\d{0,2}\.?\d{0,3}/
sdks = shell_out!('/usr/bin/xcodebuild -showsdks').stdout
included_simulator = sdks.match(/Simulator - iOS (?<version>#{version_matcher})/)
included_simulator[:version].split('.').first.to_i
end
def simulator_list
available_simulator_versions.split(/\n/).map { |version| version.split[0...2] }
end
def available_simulator_versions
shell_out!("#{BASE_COMMAND} simulators").stdout
end
end
end

Просмотреть файл

@ -1,12 +1,15 @@
name 'macos'
maintainer 'Copyright 2017 Microsoft. All rights reserved.'
maintainer_email 'apxlab@microsoft.com'
maintainer 'Microsoft'
maintainer_email 'chef@microsoft.com'
license 'MIT'
description 'Installs/Configures macos-cookbook'
long_description 'Installs/Configures macos-cookbook'
version '0.7'
description 'Resources for configuring and provisioning macOS'
long_description 'Resources for configuring and provisioning macOS'
chef_version '~> 13.0' if respond_to?(:chef_version)
version '0.8'
source_url 'https://github.com/Microsoft/macos-cookbook'
issues_url 'https://github.com/Microsoft/macos-cookbook/issues'
supports 'mac_os_x'
depends 'homebrew'

Просмотреть файл

@ -1,42 +0,0 @@
bginfo_home = '/Users/Shared/BGInfo'
ruby_block 'set BGInfo owner to autoLoginUser' do
block do
loginwindow_plist = '/Library/Preferences/com.apple.loginwindow'
auto_login_user = "defaults read #{loginwindow_plist} autoLoginUser"
node.default['bginfo']['owner'] = shell_out!(auto_login_user).stdout.strip
end
end
include_recipe 'homebrew'
package 'imagemagick'
package 'ghostscript'
git bginfo_home do
repository 'http://apexlabgit.corp.microsoft.com/mike/BG-Info-Mac.git'
end
directory bginfo_home do
owner lazy { node['bginfo']['owner'] }
group 'staff'
end
bginfo_home_contents = %w(bginfo.command
macstorage.sh
final_bg.gif
storage.rb)
bginfo_home_contents.each do |file|
file "#{bginfo_home}/#{file}" do
owner lazy { node['bginfo']['owner'] }
group 'staff'
end
end
launchd 'com.microsoft.bginfo' do
program "#{bginfo_home}/bginfo.command"
start_calendar_interval 'Hour' => 05, 'Minute' => 0
run_at_load true
type 'agent'
action :enable
end

0
recipes/default.rb Normal file
Просмотреть файл

Просмотреть файл

@ -1,42 +0,0 @@
ruby_block('set node simulator attributes') do
block do
def available_versions
shell_out!('/usr/local/bin/xcversion simulators').stdout
end
def simulator_list
available_versions.split(/\n/).map { |version| version.split[0...2] }
end
def included_major_simulator_version
version_matcher = /\d{1,2}\.\d{0,2}\.?\d{0,3}/
sdks = shell_out!('/usr/bin/xcodebuild -showsdks').stdout
included_simulator = sdks.match(/Simulator - iOS (?<version>#{version_matcher})/)
included_simulator[:version]
end
def major_version_to_install
offset = node['macos']['simulator']['previous_versions_to_install']
included_major_simulator_version.to_i - offset.to_i
end
def highest_eligible_simulator(simulators, major_version)
simulator_requirement = Gem::Dependency.new('iOS', "~> #{major_version}")
simulators.select { |name, version| simulator_requirement.match?(name, version) }.max.join(' ')
end
highest_eligible = highest_eligible_simulator(simulator_list, major_version_to_install)
already_installed = available_versions.include?("#{highest_eligible} Simulator (installed)")
node.default['macos']['simulator']['to_install'] = highest_eligible
node.default['macos']['simulator']['already_installed?'] = already_installed
end
end
install = '/usr/local/bin/xcversion simulators --install='
execute 'Install additional iOS simulator' do
command lazy { "#{install}'#{node['macos']['simulator']['to_install']}'" }
not_if { node['macos']['simulator']['already_installed?'] }
end

Просмотреть файл

@ -1,34 +1,3 @@
xcode_version = node['macos']['xcode']['version']
xcversion = '/usr/local/bin/xcversion'
developer_creds = {
'XCODE_INSTALL_USER' => data_bag_item('credentials', 'apple_id')['apple_id'],
'XCODE_INSTALL_PASSWORD' => data_bag_item('credentials', 'apple_id')['password'],
}
gem_package 'xcode-install'
ruby_block 'determine if requested Xcode is already installed' do
block do
xcversion_output = shell_out!("#{xcversion} installed").stdout.split
installed_xcodes = xcversion_output.values_at(*xcversion_output.each_index.select(&:even?))
node.default['macos']['xcode']['already_installed?'] =
installed_xcodes.include?(node['macos']['xcode']['version'])
end
end
execute 'get Xcode versions currently available from Apple' do
command lazy { "#{xcversion} update" }
environment developer_creds
not_if { node['macos']['xcode']['already_installed?'] }
end
execute 'installed requested Xcode' do
command lazy { "#{xcversion} install '#{xcode_version}' --no-show-release-notes" }
environment developer_creds
not_if { node['macos']['xcode']['already_installed?'] }
end
execute 'accept Xcode license' do
command 'xcodebuild -license accept'
xcode node['macos']['xcode']['major_version'] do
ios_simulators node['macos']['xcode']['simulator']['major_version']
end

58
resources/xcode.rb Normal file
Просмотреть файл

@ -0,0 +1,58 @@
include Xcode::Helper
resource_name :xcode
default_action %i(setup install_xcode install_simulators)
property :version, String, name_property: true
property :path, String, default: '/Applications/Xcode.app'
property :ios_simulators, Array
action :setup do
gem_package 'xcode-install' do
options('--no-document')
end
end
action :install_xcode do
CREDENTIALS_DATA_BAG = data_bag_item(:credentials, :apple_id)
DEVELOPER_CREDENTIALS = {
XCODE_INSTALL_USER: CREDENTIALS_DATA_BAG['apple_id'],
XCODE_INSTALL_PASSWORD: CREDENTIALS_DATA_BAG['password'],
}.freeze
execute 'update available Xcode versions' do
environment DEVELOPER_CREDENTIALS
command "#{BASE_COMMAND} update"
end
execute "install Xcode #{new_resource.version}" do
environment DEVELOPER_CREDENTIALS
command "#{BASE_COMMAND} install '#{new_resource.version}'"
creates new_resource.path
not_if { xcode_already_installed?(new_resource.version) }
end
execute "switch Xcode to #{new_resource.path}" do
command "xcode-select --switch #{new_resource.path}"
end
execute 'accept license' do
command '/usr/bin/xcodebuild -license accept'
end
end
action :install_simulators do
if new_resource.ios_simulators
new_resource.ios_simulators.each do |major_version|
next if major_version.to_i >= included_simulator_major_version
version = highest_semantic_simulator_version(major_version, simulator_list)
execute "install #{version} Simulator" do
environment DEVELOPER_CREDENTIALS
command "#{BASE_COMMAND} simulators --install='#{version}'"
not_if { simulator_already_installed?(version) }
end
end
end
end

Просмотреть файл

@ -1,54 +0,0 @@
require 'spec_helper'
describe 'macos::bginfo' do
context 'BGInfo recipe downloads, installs, and runs BGInfo service' do
before(:each) do
stub_command('which git').and_return(true)
end
let(:chef_run) do
runner = ChefSpec::SoloRunner.new(platform: 'mac_os_x', version: '10.12')
runner.converge(described_recipe)
end
it 'set the BGInfo owner to the system autoLoginUser' do
expect(chef_run.node.normal['bginfo']['owner']).to eq({})
expect(chef_run).to run_ruby_block('set BGInfo owner to autoLoginUser')
end
it 'installs homebrew dependencies' do
expect(chef_run).to include_recipe('homebrew')
expect(chef_run).to install_package('imagemagick')
expect(chef_run).to install_package('ghostscript')
end
it 'clones the BGInfo repository' do
expect(chef_run).to sync_git('/Users/Shared/BGInfo')
end
it 'sets permissions for BGInfo home folder and contents' do
home = '/Users/Shared/BGInfo'
chef_run.node.normal['bginfo']['owner'] = 'vagrant'
expect(chef_run).to create_directory(home).with(owner: 'vagrant',
group: 'staff')
bginfo_home_contents = %w(bginfo.command
macstorage.sh
final_bg.gif
storage.rb)
bginfo_home_contents.each do |file|
expect(chef_run).to create_file("#{home}/#{file}").with(owner: 'vagrant',
group: 'staff')
end
end
it 'creates and enables a LaunchAgent for BGInfo' do
expect(chef_run).to enable_launchd(
'com.microsoft.bginfo'
).with(
run_at_load: true,
type: 'agent',
start_calendar_interval: { 'Hour' => 05, 'Minute' => 0 }
)
end
end
end

Просмотреть файл

@ -1,14 +0,0 @@
require 'spec_helper'
describe 'macos::simulators' do
context 'When all attributes are default, on macOS 10.12' do
let(:chef_run) do
runner = ChefSpec::ServerRunner.new(platform: 'mac_os_x', version: '10.12')
runner.converge(described_recipe)
end
it 'converges successfully' do
expect { chef_run }.to_not raise_error
end
end
end

Просмотреть файл

@ -0,0 +1,16 @@
control 'xcode' do
desc 'application Xcode exists and Developer mode is enabled'
describe file '/Applications/Xcode.app' do
it { should exist }
it { should be_symlink }
end
describe directory '/Applications/Xcode-9.app' do
it { should exist }
end
describe command('/usr/local/bin/xcversion simulators') do
its('stdout') { should match /iOS 10\.3\.1 Simulator \(installed\)/ }
end
end