changeset 141:ee4b6191b61e

packages: update yasnippet and deps
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 20 Apr 2016 13:40:19 -0400
parents 817e74b09115
children e610c7820306
files elpa/goto-last-change-1.2/goto-last-change-autoloads.el elpa/goto-last-change-1.2/goto-last-change-pkg.el elpa/goto-last-change-1.2/goto-last-change.el elpa/nginx-mode-1.1/nginx-mode-autoloads.el elpa/nginx-mode-1.1/nginx-mode-pkg.el elpa/nginx-mode-1.1/nginx-mode.el elpa/undo-tree-0.6.5.signed elpa/undo-tree-0.6.5/undo-tree-autoloads.el elpa/undo-tree-0.6.5/undo-tree-pkg.el elpa/undo-tree-0.6.5/undo-tree.el elpa/yasnippet-0.8.0/ChangeLog elpa/yasnippet-0.8.0/README elpa/yasnippet-0.8.0/dropdown-list.el elpa/yasnippet-0.8.0/snippets/c++-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/c++-mode/beginend elpa/yasnippet-0.8.0/snippets/c++-mode/class elpa/yasnippet-0.8.0/snippets/c++-mode/ns elpa/yasnippet-0.8.0/snippets/c++-mode/template elpa/yasnippet-0.8.0/snippets/c++-mode/using elpa/yasnippet-0.8.0/snippets/c-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/c-mode/fopen elpa/yasnippet-0.8.0/snippets/c-mode/printf elpa/yasnippet-0.8.0/snippets/cc-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/cc-mode/do elpa/yasnippet-0.8.0/snippets/cc-mode/for elpa/yasnippet-0.8.0/snippets/cc-mode/if elpa/yasnippet-0.8.0/snippets/cc-mode/inc elpa/yasnippet-0.8.0/snippets/cc-mode/inc.1 elpa/yasnippet-0.8.0/snippets/cc-mode/main elpa/yasnippet-0.8.0/snippets/cc-mode/once elpa/yasnippet-0.8.0/snippets/cc-mode/struct elpa/yasnippet-0.8.0/snippets/cperl-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/csharp-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/csharp-mode/attrib elpa/yasnippet-0.8.0/snippets/csharp-mode/attrib.1 elpa/yasnippet-0.8.0/snippets/csharp-mode/attrib.2 elpa/yasnippet-0.8.0/snippets/csharp-mode/class elpa/yasnippet-0.8.0/snippets/csharp-mode/comment elpa/yasnippet-0.8.0/snippets/csharp-mode/comment.1 elpa/yasnippet-0.8.0/snippets/csharp-mode/comment.2 elpa/yasnippet-0.8.0/snippets/csharp-mode/comment.3 elpa/yasnippet-0.8.0/snippets/csharp-mode/method elpa/yasnippet-0.8.0/snippets/csharp-mode/namespace elpa/yasnippet-0.8.0/snippets/csharp-mode/prop elpa/yasnippet-0.8.0/snippets/csharp-mode/region elpa/yasnippet-0.8.0/snippets/csharp-mode/using elpa/yasnippet-0.8.0/snippets/csharp-mode/using.1 elpa/yasnippet-0.8.0/snippets/csharp-mode/using.2 elpa/yasnippet-0.8.0/snippets/css-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/css-mode/bg elpa/yasnippet-0.8.0/snippets/css-mode/bg.1 elpa/yasnippet-0.8.0/snippets/css-mode/bor elpa/yasnippet-0.8.0/snippets/css-mode/cl elpa/yasnippet-0.8.0/snippets/css-mode/disp.block elpa/yasnippet-0.8.0/snippets/css-mode/disp.inline elpa/yasnippet-0.8.0/snippets/css-mode/disp.none elpa/yasnippet-0.8.0/snippets/css-mode/ff elpa/yasnippet-0.8.0/snippets/css-mode/fs elpa/yasnippet-0.8.0/snippets/css-mode/mar.bottom elpa/yasnippet-0.8.0/snippets/css-mode/mar.left elpa/yasnippet-0.8.0/snippets/css-mode/mar.mar elpa/yasnippet-0.8.0/snippets/css-mode/mar.margin elpa/yasnippet-0.8.0/snippets/css-mode/mar.right elpa/yasnippet-0.8.0/snippets/css-mode/mar.top elpa/yasnippet-0.8.0/snippets/css-mode/pad.bottom elpa/yasnippet-0.8.0/snippets/css-mode/pad.left elpa/yasnippet-0.8.0/snippets/css-mode/pad.pad elpa/yasnippet-0.8.0/snippets/css-mode/pad.padding elpa/yasnippet-0.8.0/snippets/css-mode/pad.right elpa/yasnippet-0.8.0/snippets/css-mode/pad.top elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/.read_me elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/add-hook.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/and.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/append.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/apply.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/aref.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/aset.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/assq.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/autoload.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/backward-char.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/beginning-of-line.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/bounds-of-thing-at-point.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-file-name.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-modified-p.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-substring-no-properties.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-substring.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/car.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/cdr.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/concat.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/cond.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/condition-case.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/cons.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/consp.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/copy-directory.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/copy-file.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/current-buffer.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/custom-autoload.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defalias.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defcustom.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/define-key.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defsubst.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defun.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defvar.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-char.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-directory.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-file.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-region.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/directory-files.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/dolist.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/end-of-line.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/eq.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/equal.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/error.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/expand-file-name.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/f.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/fboundp.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-directory.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-extension.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-nondirectory.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-sans-extension.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-relative-name.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/find-file.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/format.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/forward-char.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/forward-line.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/funcall.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/function.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/get.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/global-set-key.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/goto-char.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/if.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/insert-file-contents.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/insert.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/interactive.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/kbd.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/kill-buffer.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/lambda.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/length.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/let.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/line-beginning-position.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/line-end-position.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/list.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/looking-at.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/make-directory.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/make-local-variable.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/mapc.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/mapcar.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/match-beginning.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/match-end.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/match-string.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/memq.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/message.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/not.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/nth.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/null.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/number-to-string.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/or.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/point-max.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/point-min.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/point.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/princ.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/print.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/progn.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/push.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/put.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/re-search-backward.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/re-search-forward.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/region-active-p.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/region-beginning.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/region-end.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/rename-file.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/repeat.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/replace-regexp-in-string.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/replace-regexp.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/require.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/save-buffer.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/save-excursion.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-backward-regexp.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-backward.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-forward-regexp.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-forward.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set-buffer.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set-file-modes.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set-mark.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/setq.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/skip-chars-backward.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/skip-chars-forward.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/split-string.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string-match.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string-to-number.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string=.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/stringp.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/substring.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/thing-at-point.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/unless.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/vector.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/when.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/while.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/widget-get.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/with-current-buffer.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-file.process.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-find-replace.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-grabstring.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-grabthing.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-traverse_dir.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-word-or-region.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/y-or-n-p.yasnippet elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/yes-or-no-p.yasnippet elpa/yasnippet-0.8.0/snippets/erlang-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/erlang-mode/after elpa/yasnippet-0.8.0/snippets/erlang-mode/begin elpa/yasnippet-0.8.0/snippets/erlang-mode/beh elpa/yasnippet-0.8.0/snippets/erlang-mode/case elpa/yasnippet-0.8.0/snippets/erlang-mode/compile elpa/yasnippet-0.8.0/snippets/erlang-mode/def elpa/yasnippet-0.8.0/snippets/erlang-mode/exp elpa/yasnippet-0.8.0/snippets/erlang-mode/fun elpa/yasnippet-0.8.0/snippets/erlang-mode/if elpa/yasnippet-0.8.0/snippets/erlang-mode/ifdef elpa/yasnippet-0.8.0/snippets/erlang-mode/ifndef elpa/yasnippet-0.8.0/snippets/erlang-mode/imp elpa/yasnippet-0.8.0/snippets/erlang-mode/inc elpa/yasnippet-0.8.0/snippets/erlang-mode/inc.lib elpa/yasnippet-0.8.0/snippets/erlang-mode/loop elpa/yasnippet-0.8.0/snippets/erlang-mode/mod elpa/yasnippet-0.8.0/snippets/erlang-mode/rcv elpa/yasnippet-0.8.0/snippets/erlang-mode/rcv.after elpa/yasnippet-0.8.0/snippets/erlang-mode/rec elpa/yasnippet-0.8.0/snippets/erlang-mode/try elpa/yasnippet-0.8.0/snippets/erlang-mode/undef elpa/yasnippet-0.8.0/snippets/f90-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/f90-mode/au elpa/yasnippet-0.8.0/snippets/f90-mode/bd elpa/yasnippet-0.8.0/snippets/f90-mode/c elpa/yasnippet-0.8.0/snippets/f90-mode/ch elpa/yasnippet-0.8.0/snippets/f90-mode/cx elpa/yasnippet-0.8.0/snippets/f90-mode/dc elpa/yasnippet-0.8.0/snippets/f90-mode/do elpa/yasnippet-0.8.0/snippets/f90-mode/dp elpa/yasnippet-0.8.0/snippets/f90-mode/eq elpa/yasnippet-0.8.0/snippets/f90-mode/ib elpa/yasnippet-0.8.0/snippets/f90-mode/ic elpa/yasnippet-0.8.0/snippets/f90-mode/ich elpa/yasnippet-0.8.0/snippets/f90-mode/if elpa/yasnippet-0.8.0/snippets/f90-mode/ii elpa/yasnippet-0.8.0/snippets/f90-mode/il elpa/yasnippet-0.8.0/snippets/f90-mode/in elpa/yasnippet-0.8.0/snippets/f90-mode/inc elpa/yasnippet-0.8.0/snippets/f90-mode/intr elpa/yasnippet-0.8.0/snippets/f90-mode/ir elpa/yasnippet-0.8.0/snippets/f90-mode/l elpa/yasnippet-0.8.0/snippets/f90-mode/pa elpa/yasnippet-0.8.0/snippets/f90-mode/pr elpa/yasnippet-0.8.0/snippets/f90-mode/re elpa/yasnippet-0.8.0/snippets/f90-mode/st elpa/yasnippet-0.8.0/snippets/f90-mode/su elpa/yasnippet-0.8.0/snippets/f90-mode/wr elpa/yasnippet-0.8.0/snippets/html-mode/.yas-make-groups elpa/yasnippet-0.8.0/snippets/html-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/html-mode/b.yasnippet elpa/yasnippet-0.8.0/snippets/html-mode/body elpa/yasnippet-0.8.0/snippets/html-mode/br elpa/yasnippet-0.8.0/snippets/html-mode/code elpa/yasnippet-0.8.0/snippets/html-mode/code.class elpa/yasnippet-0.8.0/snippets/html-mode/div elpa/yasnippet-0.8.0/snippets/html-mode/div.class elpa/yasnippet-0.8.0/snippets/html-mode/div.id elpa/yasnippet-0.8.0/snippets/html-mode/div.id-class elpa/yasnippet-0.8.0/snippets/html-mode/dov elpa/yasnippet-0.8.0/snippets/html-mode/form elpa/yasnippet-0.8.0/snippets/html-mode/head elpa/yasnippet-0.8.0/snippets/html-mode/header/h1 elpa/yasnippet-0.8.0/snippets/html-mode/header/h2 elpa/yasnippet-0.8.0/snippets/html-mode/header/h3 elpa/yasnippet-0.8.0/snippets/html-mode/header/h4 elpa/yasnippet-0.8.0/snippets/html-mode/header/h5 elpa/yasnippet-0.8.0/snippets/html-mode/header/h6 elpa/yasnippet-0.8.0/snippets/html-mode/hr elpa/yasnippet-0.8.0/snippets/html-mode/href elpa/yasnippet-0.8.0/snippets/html-mode/html elpa/yasnippet-0.8.0/snippets/html-mode/html.xmlns elpa/yasnippet-0.8.0/snippets/html-mode/i.yasnippet elpa/yasnippet-0.8.0/snippets/html-mode/img elpa/yasnippet-0.8.0/snippets/html-mode/input elpa/yasnippet-0.8.0/snippets/html-mode/link.stylesheet elpa/yasnippet-0.8.0/snippets/html-mode/link.stylesheet-ie elpa/yasnippet-0.8.0/snippets/html-mode/list/dd elpa/yasnippet-0.8.0/snippets/html-mode/list/dl elpa/yasnippet-0.8.0/snippets/html-mode/list/dl.id elpa/yasnippet-0.8.0/snippets/html-mode/list/dt elpa/yasnippet-0.8.0/snippets/html-mode/list/li elpa/yasnippet-0.8.0/snippets/html-mode/list/li.class elpa/yasnippet-0.8.0/snippets/html-mode/list/ol elpa/yasnippet-0.8.0/snippets/html-mode/list/ol.class elpa/yasnippet-0.8.0/snippets/html-mode/list/ol.id elpa/yasnippet-0.8.0/snippets/html-mode/list/ul elpa/yasnippet-0.8.0/snippets/html-mode/list/ul.class elpa/yasnippet-0.8.0/snippets/html-mode/list/ul.id elpa/yasnippet-0.8.0/snippets/html-mode/mailto elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhml1 elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhtml1_1 elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhtml1_strict elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhtml1_transitional elpa/yasnippet-0.8.0/snippets/html-mode/meta/meta elpa/yasnippet-0.8.0/snippets/html-mode/meta/meta.http-equiv elpa/yasnippet-0.8.0/snippets/html-mode/p elpa/yasnippet-0.8.0/snippets/html-mode/pre elpa/yasnippet-0.8.0/snippets/html-mode/q.yasnippet elpa/yasnippet-0.8.0/snippets/html-mode/quote elpa/yasnippet-0.8.0/snippets/html-mode/script.javascript elpa/yasnippet-0.8.0/snippets/html-mode/script.javascript-src elpa/yasnippet-0.8.0/snippets/html-mode/span elpa/yasnippet-0.8.0/snippets/html-mode/span.class elpa/yasnippet-0.8.0/snippets/html-mode/span.id elpa/yasnippet-0.8.0/snippets/html-mode/style elpa/yasnippet-0.8.0/snippets/html-mode/table/table elpa/yasnippet-0.8.0/snippets/html-mode/table/td elpa/yasnippet-0.8.0/snippets/html-mode/table/th elpa/yasnippet-0.8.0/snippets/html-mode/table/tr elpa/yasnippet-0.8.0/snippets/html-mode/textarea elpa/yasnippet-0.8.0/snippets/html-mode/title elpa/yasnippet-0.8.0/snippets/latex-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/latex-mode/begin elpa/yasnippet-0.8.0/snippets/markdown-mode/+ elpa/yasnippet-0.8.0/snippets/markdown-mode/- elpa/yasnippet-0.8.0/snippets/markdown-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/markdown-mode/_ elpa/yasnippet-0.8.0/snippets/markdown-mode/__ elpa/yasnippet-0.8.0/snippets/markdown-mode/` elpa/yasnippet-0.8.0/snippets/markdown-mode/h1.1 elpa/yasnippet-0.8.0/snippets/markdown-mode/h1.2 elpa/yasnippet-0.8.0/snippets/markdown-mode/h2.1 elpa/yasnippet-0.8.0/snippets/markdown-mode/h2.2 elpa/yasnippet-0.8.0/snippets/markdown-mode/h3 elpa/yasnippet-0.8.0/snippets/markdown-mode/h4 elpa/yasnippet-0.8.0/snippets/markdown-mode/h5 elpa/yasnippet-0.8.0/snippets/markdown-mode/h6 elpa/yasnippet-0.8.0/snippets/markdown-mode/hr.1 elpa/yasnippet-0.8.0/snippets/markdown-mode/hr.2 elpa/yasnippet-0.8.0/snippets/markdown-mode/img elpa/yasnippet-0.8.0/snippets/markdown-mode/link elpa/yasnippet-0.8.0/snippets/markdown-mode/ol elpa/yasnippet-0.8.0/snippets/markdown-mode/rimg elpa/yasnippet-0.8.0/snippets/markdown-mode/rlb elpa/yasnippet-0.8.0/snippets/markdown-mode/rlink elpa/yasnippet-0.8.0/snippets/nxml-mode/.yas-make-groups elpa/yasnippet-0.8.0/snippets/nxml-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/nxml-mode/body elpa/yasnippet-0.8.0/snippets/nxml-mode/br elpa/yasnippet-0.8.0/snippets/nxml-mode/code elpa/yasnippet-0.8.0/snippets/nxml-mode/div elpa/yasnippet-0.8.0/snippets/nxml-mode/form elpa/yasnippet-0.8.0/snippets/nxml-mode/head elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h1 elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h2 elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h3 elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h4 elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h5 elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h6 elpa/yasnippet-0.8.0/snippets/nxml-mode/hr elpa/yasnippet-0.8.0/snippets/nxml-mode/href elpa/yasnippet-0.8.0/snippets/nxml-mode/html elpa/yasnippet-0.8.0/snippets/nxml-mode/img elpa/yasnippet-0.8.0/snippets/nxml-mode/input elpa/yasnippet-0.8.0/snippets/nxml-mode/li elpa/yasnippet-0.8.0/snippets/nxml-mode/link elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/doctype elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/doctype.xhtml1_strict elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/doctype.xhtml1_transitional elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/meta elpa/yasnippet-0.8.0/snippets/nxml-mode/name elpa/yasnippet-0.8.0/snippets/nxml-mode/ol elpa/yasnippet-0.8.0/snippets/nxml-mode/p elpa/yasnippet-0.8.0/snippets/nxml-mode/pre elpa/yasnippet-0.8.0/snippets/nxml-mode/quote elpa/yasnippet-0.8.0/snippets/nxml-mode/span elpa/yasnippet-0.8.0/snippets/nxml-mode/style elpa/yasnippet-0.8.0/snippets/nxml-mode/table elpa/yasnippet-0.8.0/snippets/nxml-mode/tag.1l elpa/yasnippet-0.8.0/snippets/nxml-mode/tag.2l elpa/yasnippet-0.8.0/snippets/nxml-mode/td elpa/yasnippet-0.8.0/snippets/nxml-mode/th elpa/yasnippet-0.8.0/snippets/nxml-mode/title elpa/yasnippet-0.8.0/snippets/nxml-mode/tr elpa/yasnippet-0.8.0/snippets/nxml-mode/ul elpa/yasnippet-0.8.0/snippets/objc-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/objc-mode/prop elpa/yasnippet-0.8.0/snippets/perl-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/perl-mode/eval elpa/yasnippet-0.8.0/snippets/perl-mode/for elpa/yasnippet-0.8.0/snippets/perl-mode/fore elpa/yasnippet-0.8.0/snippets/perl-mode/if elpa/yasnippet-0.8.0/snippets/perl-mode/ife elpa/yasnippet-0.8.0/snippets/perl-mode/ifee elpa/yasnippet-0.8.0/snippets/perl-mode/sub elpa/yasnippet-0.8.0/snippets/perl-mode/unless elpa/yasnippet-0.8.0/snippets/perl-mode/while elpa/yasnippet-0.8.0/snippets/perl-mode/xfore elpa/yasnippet-0.8.0/snippets/perl-mode/xif elpa/yasnippet-0.8.0/snippets/perl-mode/xunless elpa/yasnippet-0.8.0/snippets/perl-mode/xwhile elpa/yasnippet-0.8.0/snippets/python-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/python-mode/__ elpa/yasnippet-0.8.0/snippets/python-mode/class elpa/yasnippet-0.8.0/snippets/python-mode/def elpa/yasnippet-0.8.0/snippets/python-mode/defm elpa/yasnippet-0.8.0/snippets/python-mode/for elpa/yasnippet-0.8.0/snippets/python-mode/ifmain elpa/yasnippet-0.8.0/snippets/python-mode/prop elpa/yasnippet-0.8.0/snippets/python-mode/propg elpa/yasnippet-0.8.0/snippets/python-mode/propsg elpa/yasnippet-0.8.0/snippets/python-mode/while elpa/yasnippet-0.8.0/snippets/rst-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/rst-mode/chap elpa/yasnippet-0.8.0/snippets/rst-mode/sec elpa/yasnippet-0.8.0/snippets/rst-mode/tit elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-make-groups elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/all elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/any elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/classify elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/collect elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/deli elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/det elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/ea elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eac elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eai elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eav elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eawi elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/inject elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/reject elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/select elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/zip elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/forin elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/if elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/ife elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/tim elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/until elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/upt elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/when elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/while elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/Comp elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/am elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/cla elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/cls elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/mm elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/r elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/rw elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/w elpa/yasnippet-0.8.0/snippets/ruby-mode/general/# elpa/yasnippet-0.8.0/snippets/ruby-mode/general/=b elpa/yasnippet-0.8.0/snippets/ruby-mode/general/app elpa/yasnippet-0.8.0/snippets/ruby-mode/general/bm elpa/yasnippet-0.8.0/snippets/ruby-mode/general/case elpa/yasnippet-0.8.0/snippets/ruby-mode/general/dee elpa/yasnippet-0.8.0/snippets/ruby-mode/general/rb elpa/yasnippet-0.8.0/snippets/ruby-mode/general/req elpa/yasnippet-0.8.0/snippets/ruby-mode/general/rreq elpa/yasnippet-0.8.0/snippets/ruby-mode/general/y elpa/yasnippet-0.8.0/snippets/scala-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/scala-mode/act elpa/yasnippet-0.8.0/snippets/scala-mode/act.arg elpa/yasnippet-0.8.0/snippets/scala-mode/actor elpa/yasnippet-0.8.0/snippets/scala-mode/ano elpa/yasnippet-0.8.0/snippets/scala-mode/app elpa/yasnippet-0.8.0/snippets/scala-mode/arr.new elpa/yasnippet-0.8.0/snippets/scala-mode/arr.val-new elpa/yasnippet-0.8.0/snippets/scala-mode/asof elpa/yasnippet-0.8.0/snippets/scala-mode/ass elpa/yasnippet-0.8.0/snippets/scala-mode/ass.true elpa/yasnippet-0.8.0/snippets/scala-mode/at.author elpa/yasnippet-0.8.0/snippets/scala-mode/at.param elpa/yasnippet-0.8.0/snippets/scala-mode/at.return elpa/yasnippet-0.8.0/snippets/scala-mode/at.version elpa/yasnippet-0.8.0/snippets/scala-mode/bang elpa/yasnippet-0.8.0/snippets/scala-mode/case elpa/yasnippet-0.8.0/snippets/scala-mode/case.match-all elpa/yasnippet-0.8.0/snippets/scala-mode/cast elpa/yasnippet-0.8.0/snippets/scala-mode/cc elpa/yasnippet-0.8.0/snippets/scala-mode/cl elpa/yasnippet-0.8.0/snippets/scala-mode/cl.abs elpa/yasnippet-0.8.0/snippets/scala-mode/cl.abs-arg elpa/yasnippet-0.8.0/snippets/scala-mode/cl.arg elpa/yasnippet-0.8.0/snippets/scala-mode/clof elpa/yasnippet-0.8.0/snippets/scala-mode/co elpa/yasnippet-0.8.0/snippets/scala-mode/cons elpa/yasnippet-0.8.0/snippets/scala-mode/cons.nil elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg-body elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg-ret elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg-ret-body elpa/yasnippet-0.8.0/snippets/scala-mode/def.body elpa/yasnippet-0.8.0/snippets/scala-mode/def.ret elpa/yasnippet-0.8.0/snippets/scala-mode/def.ret-body elpa/yasnippet-0.8.0/snippets/scala-mode/def.simple elpa/yasnippet-0.8.0/snippets/scala-mode/doc.class elpa/yasnippet-0.8.0/snippets/scala-mode/doc.def elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file-scala elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file-scala-api elpa/yasnippet-0.8.0/snippets/scala-mode/doc.scaladoc elpa/yasnippet-0.8.0/snippets/scala-mode/expect elpa/yasnippet-0.8.0/snippets/scala-mode/ext elpa/yasnippet-0.8.0/snippets/scala-mode/for.extract elpa/yasnippet-0.8.0/snippets/scala-mode/for.if elpa/yasnippet-0.8.0/snippets/scala-mode/for.loop elpa/yasnippet-0.8.0/snippets/scala-mode/for.multi elpa/yasnippet-0.8.0/snippets/scala-mode/foreach elpa/yasnippet-0.8.0/snippets/scala-mode/hmap.new elpa/yasnippet-0.8.0/snippets/scala-mode/hmap.val-new elpa/yasnippet-0.8.0/snippets/scala-mode/hset.new elpa/yasnippet-0.8.0/snippets/scala-mode/hset.val-new elpa/yasnippet-0.8.0/snippets/scala-mode/if elpa/yasnippet-0.8.0/snippets/scala-mode/if.else elpa/yasnippet-0.8.0/snippets/scala-mode/imp elpa/yasnippet-0.8.0/snippets/scala-mode/intercept elpa/yasnippet-0.8.0/snippets/scala-mode/isof elpa/yasnippet-0.8.0/snippets/scala-mode/ls.new elpa/yasnippet-0.8.0/snippets/scala-mode/ls.val-new elpa/yasnippet-0.8.0/snippets/scala-mode/main elpa/yasnippet-0.8.0/snippets/scala-mode/map elpa/yasnippet-0.8.0/snippets/scala-mode/map.new elpa/yasnippet-0.8.0/snippets/scala-mode/match elpa/yasnippet-0.8.0/snippets/scala-mode/match.can elpa/yasnippet-0.8.0/snippets/scala-mode/match.option elpa/yasnippet-0.8.0/snippets/scala-mode/mix elpa/yasnippet-0.8.0/snippets/scala-mode/ob elpa/yasnippet-0.8.0/snippets/scala-mode/pac elpa/yasnippet-0.8.0/snippets/scala-mode/pr.newline elpa/yasnippet-0.8.0/snippets/scala-mode/pr.simple elpa/yasnippet-0.8.0/snippets/scala-mode/pr.string elpa/yasnippet-0.8.0/snippets/scala-mode/pr.trace elpa/yasnippet-0.8.0/snippets/scala-mode/pri elpa/yasnippet-0.8.0/snippets/scala-mode/pri.param elpa/yasnippet-0.8.0/snippets/scala-mode/pro elpa/yasnippet-0.8.0/snippets/scala-mode/pro.param elpa/yasnippet-0.8.0/snippets/scala-mode/suite elpa/yasnippet-0.8.0/snippets/scala-mode/test elpa/yasnippet-0.8.0/snippets/scala-mode/throw elpa/yasnippet-0.8.0/snippets/scala-mode/tr elpa/yasnippet-0.8.0/snippets/scala-mode/tr.ext elpa/yasnippet-0.8.0/snippets/scala-mode/tr.ext-with elpa/yasnippet-0.8.0/snippets/scala-mode/tr.with elpa/yasnippet-0.8.0/snippets/scala-mode/try elpa/yasnippet-0.8.0/snippets/scala-mode/try.catch-finally elpa/yasnippet-0.8.0/snippets/scala-mode/try.finally elpa/yasnippet-0.8.0/snippets/scala-mode/tup.arrow elpa/yasnippet-0.8.0/snippets/scala-mode/tup.paren elpa/yasnippet-0.8.0/snippets/scala-mode/val elpa/yasnippet-0.8.0/snippets/scala-mode/val.new elpa/yasnippet-0.8.0/snippets/scala-mode/val.ret elpa/yasnippet-0.8.0/snippets/scala-mode/var elpa/yasnippet-0.8.0/snippets/scala-mode/var.new elpa/yasnippet-0.8.0/snippets/scala-mode/var.ret elpa/yasnippet-0.8.0/snippets/scala-mode/whi elpa/yasnippet-0.8.0/snippets/scala-mode/with elpa/yasnippet-0.8.0/snippets/snippet-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/snippet-mode/field elpa/yasnippet-0.8.0/snippets/snippet-mode/mirror elpa/yasnippet-0.8.0/snippets/snippet-mode/vars elpa/yasnippet-0.8.0/snippets/sql-mode/.yas-parents elpa/yasnippet-0.8.0/snippets/sql-mode/column elpa/yasnippet-0.8.0/snippets/sql-mode/constraint elpa/yasnippet-0.8.0/snippets/sql-mode/constraint.1 elpa/yasnippet-0.8.0/snippets/sql-mode/create elpa/yasnippet-0.8.0/snippets/sql-mode/create.1 elpa/yasnippet-0.8.0/snippets/sql-mode/references elpa/yasnippet-0.8.0/snippets/text-mode/email elpa/yasnippet-0.8.0/snippets/text-mode/time elpa/yasnippet-0.8.0/yasnippet-autoloads.el elpa/yasnippet-0.8.0/yasnippet-pkg.el elpa/yasnippet-0.8.0/yasnippet.el elpa/yasnippet-0.9.1.signed elpa/yasnippet-0.9.1/.gitmodules elpa/yasnippet-0.9.1/.travis.yml elpa/yasnippet-0.9.1/CONTRIBUTING.md elpa/yasnippet-0.9.1/ChangeLog elpa/yasnippet-0.9.1/NEWS elpa/yasnippet-0.9.1/README elpa/yasnippet-0.9.1/README.mdown elpa/yasnippet-0.9.1/Rakefile elpa/yasnippet-0.9.1/doc/.nosearch elpa/yasnippet-0.9.1/doc/faq.org elpa/yasnippet-0.9.1/doc/images/bg-content-left.png elpa/yasnippet-0.9.1/doc/images/bg-content-right.png elpa/yasnippet-0.9.1/doc/images/bg-content.png elpa/yasnippet-0.9.1/doc/images/bg-navigation-item-hover.png elpa/yasnippet-0.9.1/doc/images/bg-navigation-item.png elpa/yasnippet-0.9.1/doc/images/bg-navigation.png elpa/yasnippet-0.9.1/doc/images/body.png elpa/yasnippet-0.9.1/doc/images/customization-group.png elpa/yasnippet-0.9.1/doc/images/dropdown-menu.png elpa/yasnippet-0.9.1/doc/images/external.png elpa/yasnippet-0.9.1/doc/images/ido-menu.png elpa/yasnippet-0.9.1/doc/images/menu-1.png elpa/yasnippet-0.9.1/doc/images/menu-2.png elpa/yasnippet-0.9.1/doc/images/menu-groups.png elpa/yasnippet-0.9.1/doc/images/menu-parent.png elpa/yasnippet-0.9.1/doc/images/minor-mode-indicator.png elpa/yasnippet-0.9.1/doc/images/x-menu.png elpa/yasnippet-0.9.1/doc/index.org elpa/yasnippet-0.9.1/doc/nav-menu.html.inc elpa/yasnippet-0.9.1/doc/org-setup.inc elpa/yasnippet-0.9.1/doc/snippet-development.org elpa/yasnippet-0.9.1/doc/snippet-expansion.org elpa/yasnippet-0.9.1/doc/snippet-menu.org elpa/yasnippet-0.9.1/doc/snippet-organization.org elpa/yasnippet-0.9.1/doc/snippet-reference.org elpa/yasnippet-0.9.1/doc/stylesheets/manual.css elpa/yasnippet-0.9.1/doc/stylesheets/styles.css elpa/yasnippet-0.9.1/doc/yas-doc-helper.el elpa/yasnippet-0.9.1/snippets/c++-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/c++-mode/beginend elpa/yasnippet-0.9.1/snippets/c++-mode/class elpa/yasnippet-0.9.1/snippets/c++-mode/ns elpa/yasnippet-0.9.1/snippets/c++-mode/template elpa/yasnippet-0.9.1/snippets/c++-mode/using elpa/yasnippet-0.9.1/snippets/c-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/c-mode/fopen elpa/yasnippet-0.9.1/snippets/c-mode/printf elpa/yasnippet-0.9.1/snippets/cc-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/cc-mode/do elpa/yasnippet-0.9.1/snippets/cc-mode/for elpa/yasnippet-0.9.1/snippets/cc-mode/if elpa/yasnippet-0.9.1/snippets/cc-mode/inc elpa/yasnippet-0.9.1/snippets/cc-mode/inc.1 elpa/yasnippet-0.9.1/snippets/cc-mode/main elpa/yasnippet-0.9.1/snippets/cc-mode/once elpa/yasnippet-0.9.1/snippets/cc-mode/struct elpa/yasnippet-0.9.1/snippets/cperl-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/csharp-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/csharp-mode/attrib elpa/yasnippet-0.9.1/snippets/csharp-mode/attrib.1 elpa/yasnippet-0.9.1/snippets/csharp-mode/attrib.2 elpa/yasnippet-0.9.1/snippets/csharp-mode/class elpa/yasnippet-0.9.1/snippets/csharp-mode/comment elpa/yasnippet-0.9.1/snippets/csharp-mode/comment.1 elpa/yasnippet-0.9.1/snippets/csharp-mode/comment.2 elpa/yasnippet-0.9.1/snippets/csharp-mode/comment.3 elpa/yasnippet-0.9.1/snippets/csharp-mode/method elpa/yasnippet-0.9.1/snippets/csharp-mode/namespace elpa/yasnippet-0.9.1/snippets/csharp-mode/prop elpa/yasnippet-0.9.1/snippets/csharp-mode/region elpa/yasnippet-0.9.1/snippets/csharp-mode/using elpa/yasnippet-0.9.1/snippets/csharp-mode/using.1 elpa/yasnippet-0.9.1/snippets/csharp-mode/using.2 elpa/yasnippet-0.9.1/snippets/css-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/css-mode/bg elpa/yasnippet-0.9.1/snippets/css-mode/bg.1 elpa/yasnippet-0.9.1/snippets/css-mode/bor elpa/yasnippet-0.9.1/snippets/css-mode/cl elpa/yasnippet-0.9.1/snippets/css-mode/disp.block elpa/yasnippet-0.9.1/snippets/css-mode/disp.inline elpa/yasnippet-0.9.1/snippets/css-mode/disp.none elpa/yasnippet-0.9.1/snippets/css-mode/ff elpa/yasnippet-0.9.1/snippets/css-mode/fs elpa/yasnippet-0.9.1/snippets/css-mode/mar.bottom elpa/yasnippet-0.9.1/snippets/css-mode/mar.left elpa/yasnippet-0.9.1/snippets/css-mode/mar.mar elpa/yasnippet-0.9.1/snippets/css-mode/mar.margin elpa/yasnippet-0.9.1/snippets/css-mode/mar.right elpa/yasnippet-0.9.1/snippets/css-mode/mar.top elpa/yasnippet-0.9.1/snippets/css-mode/pad.bottom elpa/yasnippet-0.9.1/snippets/css-mode/pad.left elpa/yasnippet-0.9.1/snippets/css-mode/pad.pad elpa/yasnippet-0.9.1/snippets/css-mode/pad.padding elpa/yasnippet-0.9.1/snippets/css-mode/pad.right elpa/yasnippet-0.9.1/snippets/css-mode/pad.top elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/.read_me elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/add-hook.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/and.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/append.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/apply.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/aref.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/aset.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/assq.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/autoload.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/backward-char.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/beginning-of-line.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/bounds-of-thing-at-point.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-file-name.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-modified-p.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-substring-no-properties.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-substring.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/car.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/cdr.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/concat.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/cond.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/condition-case.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/cons.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/consp.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/copy-directory.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/copy-file.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/current-buffer.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/custom-autoload.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defalias.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defcustom.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/define-key.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defsubst.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defun.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defvar.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-char.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-directory.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-file.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-region.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/directory-files.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/dolist.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/end-of-line.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/eq.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/equal.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/error.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/expand-file-name.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/f.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/fboundp.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-directory.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-extension.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-nondirectory.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-sans-extension.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-relative-name.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/find-file.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/format.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/forward-char.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/forward-line.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/funcall.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/function.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/get.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/global-set-key.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/goto-char.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/if.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/insert-file-contents.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/insert.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/interactive.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/kbd.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/kill-buffer.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/lambda.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/length.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/let.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/line-beginning-position.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/line-end-position.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/list.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/looking-at.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/make-directory.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/make-local-variable.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/mapc.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/mapcar.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/match-beginning.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/match-end.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/match-string.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/memq.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/message.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/not.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/nth.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/null.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/number-to-string.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/or.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/point-max.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/point-min.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/point.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/princ.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/print.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/progn.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/push.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/put.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/re-search-backward.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/re-search-forward.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/region-active-p.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/region-beginning.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/region-end.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/rename-file.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/repeat.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/replace-regexp-in-string.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/replace-regexp.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/require.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/save-buffer.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/save-excursion.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-backward-regexp.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-backward.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-forward-regexp.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-forward.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set-buffer.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set-file-modes.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set-mark.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/setq.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/skip-chars-backward.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/skip-chars-forward.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/split-string.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string-match.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string-to-number.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string=.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/stringp.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/substring.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/thing-at-point.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/unless.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/vector.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/when.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/while.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/widget-get.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/with-current-buffer.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-file.process.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-find-replace.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-grabstring.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-grabthing.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-traverse_dir.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-word-or-region.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/y-or-n-p.yasnippet elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/yes-or-no-p.yasnippet elpa/yasnippet-0.9.1/snippets/erlang-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/erlang-mode/after elpa/yasnippet-0.9.1/snippets/erlang-mode/begin elpa/yasnippet-0.9.1/snippets/erlang-mode/beh elpa/yasnippet-0.9.1/snippets/erlang-mode/case elpa/yasnippet-0.9.1/snippets/erlang-mode/compile elpa/yasnippet-0.9.1/snippets/erlang-mode/def elpa/yasnippet-0.9.1/snippets/erlang-mode/exp elpa/yasnippet-0.9.1/snippets/erlang-mode/fun elpa/yasnippet-0.9.1/snippets/erlang-mode/if elpa/yasnippet-0.9.1/snippets/erlang-mode/ifdef elpa/yasnippet-0.9.1/snippets/erlang-mode/ifndef elpa/yasnippet-0.9.1/snippets/erlang-mode/imp elpa/yasnippet-0.9.1/snippets/erlang-mode/inc elpa/yasnippet-0.9.1/snippets/erlang-mode/inc.lib elpa/yasnippet-0.9.1/snippets/erlang-mode/loop elpa/yasnippet-0.9.1/snippets/erlang-mode/mod elpa/yasnippet-0.9.1/snippets/erlang-mode/rcv elpa/yasnippet-0.9.1/snippets/erlang-mode/rcv.after elpa/yasnippet-0.9.1/snippets/erlang-mode/rec elpa/yasnippet-0.9.1/snippets/erlang-mode/try elpa/yasnippet-0.9.1/snippets/erlang-mode/undef elpa/yasnippet-0.9.1/snippets/f90-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/f90-mode/au elpa/yasnippet-0.9.1/snippets/f90-mode/bd elpa/yasnippet-0.9.1/snippets/f90-mode/c elpa/yasnippet-0.9.1/snippets/f90-mode/ch elpa/yasnippet-0.9.1/snippets/f90-mode/cx elpa/yasnippet-0.9.1/snippets/f90-mode/dc elpa/yasnippet-0.9.1/snippets/f90-mode/do elpa/yasnippet-0.9.1/snippets/f90-mode/dp elpa/yasnippet-0.9.1/snippets/f90-mode/eq elpa/yasnippet-0.9.1/snippets/f90-mode/ib elpa/yasnippet-0.9.1/snippets/f90-mode/ic elpa/yasnippet-0.9.1/snippets/f90-mode/ich elpa/yasnippet-0.9.1/snippets/f90-mode/if elpa/yasnippet-0.9.1/snippets/f90-mode/ii elpa/yasnippet-0.9.1/snippets/f90-mode/il elpa/yasnippet-0.9.1/snippets/f90-mode/in elpa/yasnippet-0.9.1/snippets/f90-mode/inc elpa/yasnippet-0.9.1/snippets/f90-mode/intr elpa/yasnippet-0.9.1/snippets/f90-mode/ir elpa/yasnippet-0.9.1/snippets/f90-mode/l elpa/yasnippet-0.9.1/snippets/f90-mode/pa elpa/yasnippet-0.9.1/snippets/f90-mode/pr elpa/yasnippet-0.9.1/snippets/f90-mode/re elpa/yasnippet-0.9.1/snippets/f90-mode/st elpa/yasnippet-0.9.1/snippets/f90-mode/su elpa/yasnippet-0.9.1/snippets/f90-mode/wr elpa/yasnippet-0.9.1/snippets/html-mode/.yas-make-groups elpa/yasnippet-0.9.1/snippets/html-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/html-mode/b.yasnippet elpa/yasnippet-0.9.1/snippets/html-mode/body elpa/yasnippet-0.9.1/snippets/html-mode/br elpa/yasnippet-0.9.1/snippets/html-mode/code elpa/yasnippet-0.9.1/snippets/html-mode/code.class elpa/yasnippet-0.9.1/snippets/html-mode/div elpa/yasnippet-0.9.1/snippets/html-mode/div.class elpa/yasnippet-0.9.1/snippets/html-mode/div.id elpa/yasnippet-0.9.1/snippets/html-mode/div.id-class elpa/yasnippet-0.9.1/snippets/html-mode/dov elpa/yasnippet-0.9.1/snippets/html-mode/form elpa/yasnippet-0.9.1/snippets/html-mode/head elpa/yasnippet-0.9.1/snippets/html-mode/header/h1 elpa/yasnippet-0.9.1/snippets/html-mode/header/h2 elpa/yasnippet-0.9.1/snippets/html-mode/header/h3 elpa/yasnippet-0.9.1/snippets/html-mode/header/h4 elpa/yasnippet-0.9.1/snippets/html-mode/header/h5 elpa/yasnippet-0.9.1/snippets/html-mode/header/h6 elpa/yasnippet-0.9.1/snippets/html-mode/hr elpa/yasnippet-0.9.1/snippets/html-mode/href elpa/yasnippet-0.9.1/snippets/html-mode/html elpa/yasnippet-0.9.1/snippets/html-mode/html.xmlns elpa/yasnippet-0.9.1/snippets/html-mode/i.yasnippet elpa/yasnippet-0.9.1/snippets/html-mode/img elpa/yasnippet-0.9.1/snippets/html-mode/input elpa/yasnippet-0.9.1/snippets/html-mode/link.stylesheet elpa/yasnippet-0.9.1/snippets/html-mode/link.stylesheet-ie elpa/yasnippet-0.9.1/snippets/html-mode/list/dd elpa/yasnippet-0.9.1/snippets/html-mode/list/dl elpa/yasnippet-0.9.1/snippets/html-mode/list/dl.id elpa/yasnippet-0.9.1/snippets/html-mode/list/dt elpa/yasnippet-0.9.1/snippets/html-mode/list/li elpa/yasnippet-0.9.1/snippets/html-mode/list/li.class elpa/yasnippet-0.9.1/snippets/html-mode/list/ol elpa/yasnippet-0.9.1/snippets/html-mode/list/ol.class elpa/yasnippet-0.9.1/snippets/html-mode/list/ol.id elpa/yasnippet-0.9.1/snippets/html-mode/list/ul elpa/yasnippet-0.9.1/snippets/html-mode/list/ul.class elpa/yasnippet-0.9.1/snippets/html-mode/list/ul.id elpa/yasnippet-0.9.1/snippets/html-mode/mailto elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhml1 elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhtml1_1 elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhtml1_strict elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhtml1_transitional elpa/yasnippet-0.9.1/snippets/html-mode/meta/meta elpa/yasnippet-0.9.1/snippets/html-mode/meta/meta.http-equiv elpa/yasnippet-0.9.1/snippets/html-mode/p elpa/yasnippet-0.9.1/snippets/html-mode/pre elpa/yasnippet-0.9.1/snippets/html-mode/q.yasnippet elpa/yasnippet-0.9.1/snippets/html-mode/quote elpa/yasnippet-0.9.1/snippets/html-mode/script.javascript elpa/yasnippet-0.9.1/snippets/html-mode/script.javascript-src elpa/yasnippet-0.9.1/snippets/html-mode/span elpa/yasnippet-0.9.1/snippets/html-mode/span.class elpa/yasnippet-0.9.1/snippets/html-mode/span.id elpa/yasnippet-0.9.1/snippets/html-mode/style elpa/yasnippet-0.9.1/snippets/html-mode/table/table elpa/yasnippet-0.9.1/snippets/html-mode/table/td elpa/yasnippet-0.9.1/snippets/html-mode/table/th elpa/yasnippet-0.9.1/snippets/html-mode/table/tr elpa/yasnippet-0.9.1/snippets/html-mode/textarea elpa/yasnippet-0.9.1/snippets/html-mode/title elpa/yasnippet-0.9.1/snippets/js-mode/assert.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/cb.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/com.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/describe.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/err.snippet elpa/yasnippet-0.9.1/snippets/js-mode/error.snippet elpa/yasnippet-0.9.1/snippets/js-mode/expect.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/exports.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/fn.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/for.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/id.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/if.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/invoc.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/it.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/log.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/method.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/mod.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/prop.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/proto.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/rq.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/rt.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/slice.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/super.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/switch.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/throw.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/try.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/var.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/wh.yasnippet elpa/yasnippet-0.9.1/snippets/js-mode/while.yasnippet elpa/yasnippet-0.9.1/snippets/latex-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/latex-mode/begin elpa/yasnippet-0.9.1/snippets/markdown-mode/+ elpa/yasnippet-0.9.1/snippets/markdown-mode/- elpa/yasnippet-0.9.1/snippets/markdown-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/markdown-mode/_ elpa/yasnippet-0.9.1/snippets/markdown-mode/__ elpa/yasnippet-0.9.1/snippets/markdown-mode/` elpa/yasnippet-0.9.1/snippets/markdown-mode/h1.1 elpa/yasnippet-0.9.1/snippets/markdown-mode/h1.2 elpa/yasnippet-0.9.1/snippets/markdown-mode/h2.1 elpa/yasnippet-0.9.1/snippets/markdown-mode/h2.2 elpa/yasnippet-0.9.1/snippets/markdown-mode/h3 elpa/yasnippet-0.9.1/snippets/markdown-mode/h4 elpa/yasnippet-0.9.1/snippets/markdown-mode/h5 elpa/yasnippet-0.9.1/snippets/markdown-mode/h6 elpa/yasnippet-0.9.1/snippets/markdown-mode/hr.1 elpa/yasnippet-0.9.1/snippets/markdown-mode/hr.2 elpa/yasnippet-0.9.1/snippets/markdown-mode/img elpa/yasnippet-0.9.1/snippets/markdown-mode/link elpa/yasnippet-0.9.1/snippets/markdown-mode/ol elpa/yasnippet-0.9.1/snippets/markdown-mode/rimg elpa/yasnippet-0.9.1/snippets/markdown-mode/rlb elpa/yasnippet-0.9.1/snippets/markdown-mode/rlink elpa/yasnippet-0.9.1/snippets/nxml-mode/.yas-make-groups elpa/yasnippet-0.9.1/snippets/nxml-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/nxml-mode/body elpa/yasnippet-0.9.1/snippets/nxml-mode/br elpa/yasnippet-0.9.1/snippets/nxml-mode/code elpa/yasnippet-0.9.1/snippets/nxml-mode/div elpa/yasnippet-0.9.1/snippets/nxml-mode/form elpa/yasnippet-0.9.1/snippets/nxml-mode/head elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h1 elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h2 elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h3 elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h4 elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h5 elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h6 elpa/yasnippet-0.9.1/snippets/nxml-mode/hr elpa/yasnippet-0.9.1/snippets/nxml-mode/href elpa/yasnippet-0.9.1/snippets/nxml-mode/html elpa/yasnippet-0.9.1/snippets/nxml-mode/img elpa/yasnippet-0.9.1/snippets/nxml-mode/input elpa/yasnippet-0.9.1/snippets/nxml-mode/li elpa/yasnippet-0.9.1/snippets/nxml-mode/link elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/doctype elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/doctype.xhtml1_strict elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/doctype.xhtml1_transitional elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/meta elpa/yasnippet-0.9.1/snippets/nxml-mode/name elpa/yasnippet-0.9.1/snippets/nxml-mode/ol elpa/yasnippet-0.9.1/snippets/nxml-mode/p elpa/yasnippet-0.9.1/snippets/nxml-mode/pre elpa/yasnippet-0.9.1/snippets/nxml-mode/quote elpa/yasnippet-0.9.1/snippets/nxml-mode/span elpa/yasnippet-0.9.1/snippets/nxml-mode/style elpa/yasnippet-0.9.1/snippets/nxml-mode/table elpa/yasnippet-0.9.1/snippets/nxml-mode/tag.1l elpa/yasnippet-0.9.1/snippets/nxml-mode/tag.2l elpa/yasnippet-0.9.1/snippets/nxml-mode/td elpa/yasnippet-0.9.1/snippets/nxml-mode/th elpa/yasnippet-0.9.1/snippets/nxml-mode/title elpa/yasnippet-0.9.1/snippets/nxml-mode/tr elpa/yasnippet-0.9.1/snippets/nxml-mode/ul elpa/yasnippet-0.9.1/snippets/objc-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/objc-mode/prop elpa/yasnippet-0.9.1/snippets/perl-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/perl-mode/eval elpa/yasnippet-0.9.1/snippets/perl-mode/for elpa/yasnippet-0.9.1/snippets/perl-mode/fore elpa/yasnippet-0.9.1/snippets/perl-mode/if elpa/yasnippet-0.9.1/snippets/perl-mode/ife elpa/yasnippet-0.9.1/snippets/perl-mode/ifee elpa/yasnippet-0.9.1/snippets/perl-mode/sub elpa/yasnippet-0.9.1/snippets/perl-mode/unless elpa/yasnippet-0.9.1/snippets/perl-mode/while elpa/yasnippet-0.9.1/snippets/perl-mode/xfore elpa/yasnippet-0.9.1/snippets/perl-mode/xif elpa/yasnippet-0.9.1/snippets/perl-mode/xunless elpa/yasnippet-0.9.1/snippets/perl-mode/xwhile elpa/yasnippet-0.9.1/snippets/python-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/python-mode/__ elpa/yasnippet-0.9.1/snippets/python-mode/class elpa/yasnippet-0.9.1/snippets/python-mode/def elpa/yasnippet-0.9.1/snippets/python-mode/defm elpa/yasnippet-0.9.1/snippets/python-mode/for elpa/yasnippet-0.9.1/snippets/python-mode/ifmain elpa/yasnippet-0.9.1/snippets/python-mode/prop elpa/yasnippet-0.9.1/snippets/python-mode/propg elpa/yasnippet-0.9.1/snippets/python-mode/propsg elpa/yasnippet-0.9.1/snippets/python-mode/while elpa/yasnippet-0.9.1/snippets/rst-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/rst-mode/chap elpa/yasnippet-0.9.1/snippets/rst-mode/sec elpa/yasnippet-0.9.1/snippets/rst-mode/tit elpa/yasnippet-0.9.1/snippets/ruby-mode/.yas-make-groups elpa/yasnippet-0.9.1/snippets/ruby-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/all elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/any elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/classify elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/collect elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/deli elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/det elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/ea elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eac elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eai elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eav elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eawi elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/inject elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/reject elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/select elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/zip elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/forin elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/if elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/ife elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/tim elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/until elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/upt elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/when elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/while elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/Comp elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/am elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/cla elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/cls elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/mm elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/mod elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/r elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/rw elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/w elpa/yasnippet-0.9.1/snippets/ruby-mode/general/# elpa/yasnippet-0.9.1/snippets/ruby-mode/general/=b elpa/yasnippet-0.9.1/snippets/ruby-mode/general/app elpa/yasnippet-0.9.1/snippets/ruby-mode/general/bm elpa/yasnippet-0.9.1/snippets/ruby-mode/general/case elpa/yasnippet-0.9.1/snippets/ruby-mode/general/dee elpa/yasnippet-0.9.1/snippets/ruby-mode/general/rb elpa/yasnippet-0.9.1/snippets/ruby-mode/general/req elpa/yasnippet-0.9.1/snippets/ruby-mode/general/rreq elpa/yasnippet-0.9.1/snippets/ruby-mode/general/y elpa/yasnippet-0.9.1/snippets/scala-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/scala-mode/act elpa/yasnippet-0.9.1/snippets/scala-mode/act.arg elpa/yasnippet-0.9.1/snippets/scala-mode/actor elpa/yasnippet-0.9.1/snippets/scala-mode/ano elpa/yasnippet-0.9.1/snippets/scala-mode/app elpa/yasnippet-0.9.1/snippets/scala-mode/arr.new elpa/yasnippet-0.9.1/snippets/scala-mode/arr.val-new elpa/yasnippet-0.9.1/snippets/scala-mode/asof elpa/yasnippet-0.9.1/snippets/scala-mode/ass elpa/yasnippet-0.9.1/snippets/scala-mode/ass.true elpa/yasnippet-0.9.1/snippets/scala-mode/at.author elpa/yasnippet-0.9.1/snippets/scala-mode/at.param elpa/yasnippet-0.9.1/snippets/scala-mode/at.return elpa/yasnippet-0.9.1/snippets/scala-mode/at.version elpa/yasnippet-0.9.1/snippets/scala-mode/bang elpa/yasnippet-0.9.1/snippets/scala-mode/case elpa/yasnippet-0.9.1/snippets/scala-mode/case.match-all elpa/yasnippet-0.9.1/snippets/scala-mode/cast elpa/yasnippet-0.9.1/snippets/scala-mode/cc elpa/yasnippet-0.9.1/snippets/scala-mode/cl elpa/yasnippet-0.9.1/snippets/scala-mode/cl.abs elpa/yasnippet-0.9.1/snippets/scala-mode/cl.abs-arg elpa/yasnippet-0.9.1/snippets/scala-mode/cl.arg elpa/yasnippet-0.9.1/snippets/scala-mode/clof elpa/yasnippet-0.9.1/snippets/scala-mode/co elpa/yasnippet-0.9.1/snippets/scala-mode/cons elpa/yasnippet-0.9.1/snippets/scala-mode/cons.nil elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg-body elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg-ret elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg-ret-body elpa/yasnippet-0.9.1/snippets/scala-mode/def.body elpa/yasnippet-0.9.1/snippets/scala-mode/def.ret elpa/yasnippet-0.9.1/snippets/scala-mode/def.ret-body elpa/yasnippet-0.9.1/snippets/scala-mode/def.simple elpa/yasnippet-0.9.1/snippets/scala-mode/doc.class elpa/yasnippet-0.9.1/snippets/scala-mode/doc.def elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file-scala elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file-scala-api elpa/yasnippet-0.9.1/snippets/scala-mode/doc.scaladoc elpa/yasnippet-0.9.1/snippets/scala-mode/expect elpa/yasnippet-0.9.1/snippets/scala-mode/ext elpa/yasnippet-0.9.1/snippets/scala-mode/for.extract elpa/yasnippet-0.9.1/snippets/scala-mode/for.if elpa/yasnippet-0.9.1/snippets/scala-mode/for.loop elpa/yasnippet-0.9.1/snippets/scala-mode/for.multi elpa/yasnippet-0.9.1/snippets/scala-mode/foreach elpa/yasnippet-0.9.1/snippets/scala-mode/hmap.new elpa/yasnippet-0.9.1/snippets/scala-mode/hmap.val-new elpa/yasnippet-0.9.1/snippets/scala-mode/hset.new elpa/yasnippet-0.9.1/snippets/scala-mode/hset.val-new elpa/yasnippet-0.9.1/snippets/scala-mode/if elpa/yasnippet-0.9.1/snippets/scala-mode/if.else elpa/yasnippet-0.9.1/snippets/scala-mode/imp elpa/yasnippet-0.9.1/snippets/scala-mode/intercept elpa/yasnippet-0.9.1/snippets/scala-mode/isof elpa/yasnippet-0.9.1/snippets/scala-mode/ls.new elpa/yasnippet-0.9.1/snippets/scala-mode/ls.val-new elpa/yasnippet-0.9.1/snippets/scala-mode/main elpa/yasnippet-0.9.1/snippets/scala-mode/map elpa/yasnippet-0.9.1/snippets/scala-mode/map.new elpa/yasnippet-0.9.1/snippets/scala-mode/match elpa/yasnippet-0.9.1/snippets/scala-mode/match.can elpa/yasnippet-0.9.1/snippets/scala-mode/match.option elpa/yasnippet-0.9.1/snippets/scala-mode/mix elpa/yasnippet-0.9.1/snippets/scala-mode/ob elpa/yasnippet-0.9.1/snippets/scala-mode/pac elpa/yasnippet-0.9.1/snippets/scala-mode/pr.newline elpa/yasnippet-0.9.1/snippets/scala-mode/pr.simple elpa/yasnippet-0.9.1/snippets/scala-mode/pr.string elpa/yasnippet-0.9.1/snippets/scala-mode/pr.trace elpa/yasnippet-0.9.1/snippets/scala-mode/pri elpa/yasnippet-0.9.1/snippets/scala-mode/pri.param elpa/yasnippet-0.9.1/snippets/scala-mode/pro elpa/yasnippet-0.9.1/snippets/scala-mode/pro.param elpa/yasnippet-0.9.1/snippets/scala-mode/suite elpa/yasnippet-0.9.1/snippets/scala-mode/test elpa/yasnippet-0.9.1/snippets/scala-mode/throw elpa/yasnippet-0.9.1/snippets/scala-mode/tr elpa/yasnippet-0.9.1/snippets/scala-mode/tr.ext elpa/yasnippet-0.9.1/snippets/scala-mode/tr.ext-with elpa/yasnippet-0.9.1/snippets/scala-mode/tr.with elpa/yasnippet-0.9.1/snippets/scala-mode/try elpa/yasnippet-0.9.1/snippets/scala-mode/try.catch-finally elpa/yasnippet-0.9.1/snippets/scala-mode/try.finally elpa/yasnippet-0.9.1/snippets/scala-mode/tup.arrow elpa/yasnippet-0.9.1/snippets/scala-mode/tup.paren elpa/yasnippet-0.9.1/snippets/scala-mode/val elpa/yasnippet-0.9.1/snippets/scala-mode/val.new elpa/yasnippet-0.9.1/snippets/scala-mode/val.ret elpa/yasnippet-0.9.1/snippets/scala-mode/var elpa/yasnippet-0.9.1/snippets/scala-mode/var.new elpa/yasnippet-0.9.1/snippets/scala-mode/var.ret elpa/yasnippet-0.9.1/snippets/scala-mode/whi elpa/yasnippet-0.9.1/snippets/scala-mode/with elpa/yasnippet-0.9.1/snippets/snippet-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/snippet-mode/field elpa/yasnippet-0.9.1/snippets/snippet-mode/mirror elpa/yasnippet-0.9.1/snippets/snippet-mode/vars elpa/yasnippet-0.9.1/snippets/sql-mode/.yas-parents elpa/yasnippet-0.9.1/snippets/sql-mode/column elpa/yasnippet-0.9.1/snippets/sql-mode/constraint elpa/yasnippet-0.9.1/snippets/sql-mode/constraint.1 elpa/yasnippet-0.9.1/snippets/sql-mode/create elpa/yasnippet-0.9.1/snippets/sql-mode/create.1 elpa/yasnippet-0.9.1/snippets/sql-mode/references elpa/yasnippet-0.9.1/snippets/text-mode/email elpa/yasnippet-0.9.1/snippets/text-mode/time elpa/yasnippet-0.9.1/yasnippet-autoloads.el elpa/yasnippet-0.9.1/yasnippet-debug.el elpa/yasnippet-0.9.1/yasnippet-pkg.el elpa/yasnippet-0.9.1/yasnippet-tests.el elpa/yasnippet-0.9.1/yasnippet.el
diffstat 688 files changed, 13604 insertions(+), 4954 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/elpa/goto-last-change-1.2/goto-last-change-autoloads.el
@@ -0,0 +1,25 @@
+;;; goto-last-change-autoloads.el --- automatically extracted autoloads
+;;
+;;; Code:
+(add-to-list 'load-path (or (file-name-directory #$) (car load-path)))
+
+;;;### (autoloads nil "goto-last-change" "goto-last-change.el" (22294
+;;;;;;  19053 52329 265000))
+;;; Generated autoloads from goto-last-change.el
+
+(autoload 'goto-last-change "goto-last-change" "\
+Set point to the position of the last change.
+Consecutive calls set point to the position of the previous change.
+With a prefix arg (optional arg MARK-POINT non-nil), set mark so \\[exchange-point-and-mark]
+will return point to the current position.
+
+\(fn &optional MARK-POINT MINIMAL-LINE-DISTANCE)" t nil)
+
+;;;***
+
+;; Local Variables:
+;; version-control: never
+;; no-byte-compile: t
+;; no-update-autoloads: t
+;; End:
+;;; goto-last-change-autoloads.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/goto-last-change-1.2/goto-last-change-pkg.el
@@ -0,0 +1,1 @@
+(define-package "goto-last-change" "1.2" "Move point through buffer-undo-list positions" 'nil)
new file mode 100644
--- /dev/null
+++ b/elpa/goto-last-change-1.2/goto-last-change.el
@@ -0,0 +1,140 @@
+;;; goto-last-change.el --- Move point through buffer-undo-list positions -*-unibyte: t; coding: iso-8859-1;-*-
+
+;; Copyright 2003 Kevin Rodgers
+
+;; Author: Kevin Rodgers <ihs_4664@yahoo.com>
+;; Created: 17 Jun 2003
+;; Version: 1.2
+;; Keywords: convenience
+
+;; Contributors:
+;;   Attila Lendvai <attila.lendvai@gmail.com> (line distance and auto marks)
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2 of
+;; the License, or (at your option) any later version.
+
+;; This program is distributed in the hope that it will be
+;; useful, but WITHOUT ANY WARRANTY; without even the implied
+;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+;; PURPOSE.  See the GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public
+;; License along with this program; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+;; MA 02111-1307 USA
+
+;;; Commentary:
+
+;; After installing goto-last-change.el in a `load-path' directory and
+;; compiling it with `M-x byte-compile-file', load it with
+;;  (require 'goto-last-change)
+;; or autoload it with
+;;  (autoload 'goto-last-change "goto-last-change"
+;;    "Set point to the position of the last change." t)
+;;
+;; You may also want to bind a key to `M-x goto-last-change', e.g.
+;;  (global-set-key "\C-x\C-\\" 'goto-last-change)
+
+;; goto-last-change.el was written in response to to the following:
+;;
+;; From: Dan Jacobson <jidanni@jidanni.org>
+;; Newsgroups: gnu.emacs.bug
+;; Subject: function to go to spot of last change
+;; Date: Sun, 15 Jun 2003 00:15:08 +0000 (UTC)
+;; Sender: news <news@main.gmane.org>
+;; Message-ID: <mailman.7910.1055637181.21513.bug-gnu-emacs@gnu.org>
+;; NNTP-Posting-Host: monty-python.gnu.org
+;;
+;;
+;; Why of course, a function to get the user to the spot of last changes
+;; in the current buffer(s?), that's what emacs must lack.
+;;
+;; How many times have you found yourself mosying [<-not in spell
+;; checker!?] thru a file when you wonder, where the heck was I just
+;; editing?  Well, the best you can do is hit undo, ^F, and undo again,
+;; to get back.  Hence the "burning need" for the additional function,
+;; which you might name the-jacobson-memorial-function, due to its brilliance.
+;; --
+;; http://jidanni.org/ Taiwan(04)25854780
+
+;;; Code:
+(provide 'goto-last-change)
+
+(or (fboundp 'last)			; Emacs 20
+    (require 'cl))			; Emacs 19
+
+(defvar goto-last-change-undo nil
+  "The `buffer-undo-list' entry of the previous \\[goto-last-change] command.")
+(make-variable-buffer-local 'goto-last-change-undo)
+
+;;;###autoload
+(defun goto-last-change (&optional mark-point minimal-line-distance)
+  "Set point to the position of the last change.
+Consecutive calls set point to the position of the previous change.
+With a prefix arg (optional arg MARK-POINT non-nil), set mark so \
+\\[exchange-point-and-mark]
+will return point to the current position."
+  (interactive "P")
+  ;; (unless (buffer-modified-p)
+  ;;   (error "Buffer not modified"))
+  (when (eq buffer-undo-list t)
+    (error "No undo information in this buffer"))
+  (when mark-point
+    (push-mark))
+  (unless minimal-line-distance
+    (setq minimal-line-distance 10))
+  (let ((position nil)
+	(undo-list (if (and (eq this-command last-command)
+                goto-last-change-undo)
+               (cdr (memq goto-last-change-undo buffer-undo-list))
+             buffer-undo-list))
+	undo)
+    (while (and undo-list
+                (or (not position)
+                    (eql position (point))
+                    (and minimal-line-distance
+                         ;; The first invocation always goes to the last change, subsequent ones skip
+                         ;; changes closer to (point) then minimal-line-distance.
+                         (memq last-command '(goto-last-change
+                                              goto-last-change-with-auto-marks))
+                         (< (count-lines (min position (point-max)) (point))
+                            minimal-line-distance))))
+      (setq undo (car undo-list))
+      (cond ((and (consp undo) (integerp (car undo)) (integerp (cdr undo)))
+         ;; (BEG . END)
+         (setq position (cdr undo)))
+        ((and (consp undo) (stringp (car undo))) ; (TEXT . POSITION)
+         (setq position (abs (cdr undo))))
+        ((and (consp undo) (eq (car undo) t))) ; (t HIGH . LOW)
+        ((and (consp undo) (null (car undo)))
+         ;; (nil PROPERTY VALUE BEG . END)
+         (setq position (cdr (last undo))))
+        ((and (consp undo) (markerp (car undo)))) ; (MARKER . DISTANCE)
+        ((integerp undo))		; POSITION
+        ((null undo))		; nil
+        (t (error "Invalid undo entry: %s" undo)))
+      (setq undo-list (cdr undo-list)))
+    (cond (position
+       (setq goto-last-change-undo undo)
+       (goto-char (min position (point-max))))
+      ((and (eq this-command last-command)
+		goto-last-change-undo)
+       (setq goto-last-change-undo nil)
+       (error "No further undo information"))
+      (t
+       (setq goto-last-change-undo nil)
+       (error "Buffer not modified")))))
+
+(defun goto-last-change-with-auto-marks (&optional minimal-line-distance)
+  "Calls goto-last-change and sets the mark at only the first invocations
+in a sequence of invocations."
+  (interactive "P")
+  (goto-last-change (not (or (eq last-command 'goto-last-change-with-auto-marks)
+                             (eq last-command t)))
+                    minimal-line-distance))
+
+;; (global-set-key "\C-x\C-\\" 'goto-last-change)
+
+;;; goto-last-change.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/nginx-mode-1.1/nginx-mode-autoloads.el
@@ -0,0 +1,25 @@
+;;; nginx-mode-autoloads.el --- automatically extracted autoloads
+;;
+;;; Code:
+(add-to-list 'load-path (or (file-name-directory #$) (car load-path)))
+
+;;;### (autoloads nil "nginx-mode" "nginx-mode.el" (22108 42670 412832
+;;;;;;  144000))
+;;; Generated autoloads from nginx-mode.el
+
+(autoload 'nginx-mode "nginx-mode" "\
+Major mode for highlighting nginx config files.
+
+The variable nginx-indent-level controls the amount of indentation.
+\\{nginx-mode-map}
+
+\(fn)" t nil)
+
+;;;***
+
+;; Local Variables:
+;; version-control: never
+;; no-byte-compile: t
+;; no-update-autoloads: t
+;; End:
+;;; nginx-mode-autoloads.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/nginx-mode-1.1/nginx-mode-pkg.el
@@ -0,0 +1,1 @@
+(define-package "nginx-mode" "1.1" "major mode for editing nginx config files" 'nil)
new file mode 100644
--- /dev/null
+++ b/elpa/nginx-mode-1.1/nginx-mode.el
@@ -0,0 +1,193 @@
+;;; nginx-mode.el --- major mode for editing nginx config files
+
+;; Copyright 2010 Andrew J Cosgriff <andrew@cosgriff.name>
+
+;; Author: Andrew J Cosgriff <andrew@cosgriff.name>
+;; Maintainer: Andrew J Cosgriff <andrew@cosgriff.name>
+;; Created: 15 Oct 2010
+;; Version: 1.1
+;; Keywords: nginx
+
+;; available from http://github.com/ajc/nginx-mode
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This is a quick mode for editing Nginx config files, as I didn't find
+;; anything else around that did quite this much.
+
+;; Many thanks to the authors of puppet-mode.el, from where I found a
+;; useful indentation function that I've modified to suit this situation.
+
+;; Put this file into your load-path and the following into your ~/.emacs:
+;;   (require 'nginx-mode)
+
+;;; Code:
+
+(provide 'nginx-mode)
+
+
+;;;;##########################################################################
+;;;;  User Options, Variables
+;;;;##########################################################################
+
+(defcustom nginx-indent-level 4
+  "*Indentation of Nginx statements."
+  :type 'integer :group 'nginx)
+
+(defcustom nginx-indent-tabs-mode nil
+  "*Indentation can insert tabs in nginx mode if this is non-nil."
+  :type 'boolean :group 'nginx)
+
+
+(defvar nginx-font-lock-keywords
+  (list '("#.*" . font-lock-comment-face)
+	'("^\\([ \t]+\\)?\\([A-Za-z09_]+\\)" 2 font-lock-keyword-face t)
+	'(";$" . font-lock-pseudo-keyword-face)
+	;; uncomment the next one if you want your eyes to bleed
+	;; (it'll highlight parentheses and curly braces)
+	;;'("\\(\{\\|\}\\|\(\\|\)\\)" . font-lock-pseudo-keyword-face)
+	'("^\\([ \t]+\\)?rewrite[ \t]+.+[ \t]+\\(permanent\\|redirect\\|break\\|last\\);$" 2 font-lock-operator-face)
+	'("\\(\$[0-9]+\\)[^0-9]" 1 font-lock-constant-face)
+	'("\$[A-Za-z0-9_\-]+" . font-lock-variable-name-face)
+	'("[ \t]+\\(on\\|off\\);$" 1 font-lock-constant-face)
+	'("[A-Za-z0-9_\-]+\\([ \t]+[^ \t\n]+\\)?[ \t]+\\([^ \t\n]+\\)[ \t]+{" 2 font-lock-operator-face)))
+
+
+;;;;##########################################################################
+;;;;  Code
+;;;;##########################################################################
+
+(defun nginx-block-indent ()
+  "If point is in a block, return the indentation of the first line of that
+block (the line containing the opening brace).  Used to set the indentation
+of the closing brace of a block."
+  (save-excursion
+    (save-match-data
+      (let ((opoint (point))
+            (apoint (search-backward "{" nil t)))
+        (when apoint
+          ;; This is a bit of a hack and doesn't allow for strings.  We really
+          ;; want to parse by sexps at some point.
+          (let ((close-braces (count-matches "}" apoint opoint))
+                (open-braces 0))
+            (while (and apoint (> close-braces open-braces))
+              (setq apoint (search-backward "{" nil t))
+              (when apoint
+                (setq close-braces (count-matches "}" apoint opoint))
+                (setq open-braces (1+ open-braces)))))
+          (if apoint
+              (current-indentation)
+            nil))))))
+
+
+(defun nginx-comment-line-p ()
+  "Return non-nil iff this line is a comment."
+  (save-excursion
+    (save-match-data
+      (beginning-of-line)
+      (looking-at "^\\s-*#"))))
+
+(defun nginx-indent-line ()
+  "Indent current line as nginx code."
+  (interactive)
+  (beginning-of-line)
+  (if (bobp)
+      (indent-line-to 0)                ; First line is always non-indented
+    (let ((not-indented t)
+          (block-indent (nginx-block-indent))
+          cur-indent)
+      (cond
+       ((and (looking-at "^\\s-*}\\s-*$") block-indent)
+        ;; This line contains a closing brace and we're at the inner
+        ;; block, so we should indent it matching the indentation of
+        ;; the opening brace of the block.
+        (setq cur-indent block-indent))
+       (t
+        ;; Otherwise, we did not start on a block-ending-only line.
+        (save-excursion
+          ;; Iterate backwards until we find an indentation hint
+          (while not-indented
+            (forward-line -1)
+            (cond
+             ;; Comment lines are ignored unless we're at the start of the
+             ;; buffer.
+             ((nginx-comment-line-p)
+              (if (bobp)
+                  (setq not-indented nil)))
+
+             ;; Brace or paren on a line by itself will already be indented to
+             ;; the right level, so we can cheat and stop there.
+             ((looking-at "^\\s-*}\\s-*")
+              (setq cur-indent (current-indentation))
+              (setq not-indented nil))
+
+             ;; Indent by one level more than the start of our block.  We lose
+             ;; if there is more than one block opened and closed on the same
+             ;; line but it's still unbalanced; hopefully people don't do that.
+             ((looking-at "^.*{[^\n}]*$")
+              (setq cur-indent (+ (current-indentation) nginx-indent-level))
+              (setq not-indented nil))
+
+             ;; Start of buffer.
+             ((bobp)
+              (setq not-indented nil)))))))
+
+      ;; We've figured out the indentation, so do it.
+      (if (and cur-indent (> cur-indent 0))
+	  (indent-line-to cur-indent)
+        (indent-line-to 0)))))
+
+
+(defvar nginx-mode-map
+  (let
+      ((map (make-sparse-keymap)))
+    (define-key map "\C-j" 'newline-and-indent)
+    (define-key map "\C-m" 'newline-and-indent)
+    map)
+  "Keymap for editing nginx config files.")
+
+;;;###autoload
+(defun nginx-mode ()
+  "Major mode for highlighting nginx config files.
+
+The variable nginx-indent-level controls the amount of indentation.
+\\{nginx-mode-map}"
+  (interactive)
+  (kill-all-local-variables)
+  (use-local-map nginx-mode-map)
+  (setq mode-name "Nginx"
+        major-mode 'nginx-mode)
+
+  (set (make-local-variable 'comment-start) "# ")
+  (set (make-local-variable 'comment-start-skip) "#+ *")
+  (set (make-local-variable 'comment-use-syntax) t)
+  (set (make-local-variable 'comment-end) "")
+  (set (make-local-variable 'comment-auto-fill-only-comments) t)
+
+  (set (make-local-variable 'indent-line-function) 'nginx-indent-line)
+  (set (make-local-variable 'indent-tabs-mode) nginx-indent-tabs-mode)
+  (set (make-local-variable 'require-final-newline) t)
+  (set (make-local-variable 'paragraph-ignore-fill-prefix) t)
+  (set (make-local-variable 'paragraph-start) "\f\\|[ 	]*$\\|#$")
+  (set (make-local-variable 'paragraph-separate) "\\([ 	\f]*\\|#\\)$")
+
+  (set (make-local-variable 'font-lock-defaults)
+       '(nginx-font-lock-keywords nil))
+  (run-hooks 'nginx-mode-hook))
+
+(provide 'nginx-mode)
+
+;;; nginx-mode.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/undo-tree-0.6.5.signed
@@ -0,0 +1,1 @@
+Good signature from 474F05837FBDEF9B GNU ELPA Signing Agent <elpasign@elpa.gnu.org> (trust undefined) created at 2014-09-24T10:20:09-0400 using DSA
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/undo-tree-0.6.5/undo-tree-autoloads.el
@@ -0,0 +1,58 @@
+;;; undo-tree-autoloads.el --- automatically extracted autoloads
+;;
+;;; Code:
+(add-to-list 'load-path (or (file-name-directory #$) (car load-path)))
+
+;;;### (autoloads nil "undo-tree" "undo-tree.el" (22294 19053 520329
+;;;;;;  287000))
+;;; Generated autoloads from undo-tree.el
+
+(autoload 'undo-tree-mode "undo-tree" "\
+Toggle undo-tree mode.
+With no argument, this command toggles the mode.
+A positive prefix argument turns the mode on.
+A negative prefix argument turns it off.
+
+Undo-tree-mode replaces Emacs' standard undo feature with a more
+powerful yet easier to use version, that treats the undo history
+as what it is: a tree.
+
+The following keys are available in `undo-tree-mode':
+
+  \\{undo-tree-map}
+
+Within the undo-tree visualizer, the following keys are available:
+
+  \\{undo-tree-visualizer-mode-map}
+
+\(fn &optional ARG)" t nil)
+
+(defvar global-undo-tree-mode nil "\
+Non-nil if Global-Undo-Tree mode is enabled.
+See the command `global-undo-tree-mode' for a description of this minor mode.
+Setting this variable directly does not take effect;
+either customize it (see the info node `Easy Customization')
+or call the function `global-undo-tree-mode'.")
+
+(custom-autoload 'global-undo-tree-mode "undo-tree" nil)
+
+(autoload 'global-undo-tree-mode "undo-tree" "\
+Toggle Undo-Tree mode in all buffers.
+With prefix ARG, enable Global-Undo-Tree mode if ARG is positive;
+otherwise, disable it.  If called from Lisp, enable the mode if
+ARG is omitted or nil.
+
+Undo-Tree mode is enabled in all buffers where
+`turn-on-undo-tree-mode' would do it.
+See `undo-tree-mode' for more information on Undo-Tree mode.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+
+;; Local Variables:
+;; version-control: never
+;; no-byte-compile: t
+;; no-update-autoloads: t
+;; End:
+;;; undo-tree-autoloads.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/undo-tree-0.6.5/undo-tree-pkg.el
@@ -0,0 +1,1 @@
+(define-package "undo-tree" "0.6.5" "Treat undo history as a tree" 'nil :url "http://www.dr-qubit.org/emacs.php" :keywords '("convenience" "files" "undo" "redo" "history" "tree"))
new file mode 100644
--- /dev/null
+++ b/elpa/undo-tree-0.6.5/undo-tree.el
@@ -0,0 +1,4418 @@
+;;; undo-tree.el --- Treat undo history as a tree  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2009-2013  Free Software Foundation, Inc
+
+;; Author: Toby Cubitt <toby-undo-tree@dr-qubit.org>
+;; Version: 0.6.5
+;; Keywords: convenience, files, undo, redo, history, tree
+;; URL: http://www.dr-qubit.org/emacs.php
+;; Repository: http://www.dr-qubit.org/git/undo-tree.git
+
+;; This file is part of Emacs.
+;;
+;; This file is free software: you can redistribute it and/or modify it under
+;; the terms of the GNU General Public License as published by the Free
+;; Software Foundation, either version 3 of the License, or (at your option)
+;; any later version.
+;;
+;; This program is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+;; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+;; more details.
+;;
+;; You should have received a copy of the GNU General Public License along
+;; with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+
+;;; Commentary:
+;;
+;; Emacs has a powerful undo system. Unlike the standard undo/redo system in
+;; most software, it allows you to recover *any* past state of a buffer
+;; (whereas the standard undo/redo system can lose past states as soon as you
+;; redo). However, this power comes at a price: many people find Emacs' undo
+;; system confusing and difficult to use, spawning a number of packages that
+;; replace it with the less powerful but more intuitive undo/redo system.
+;;
+;; Both the loss of data with standard undo/redo, and the confusion of Emacs'
+;; undo, stem from trying to treat undo history as a linear sequence of
+;; changes. It's not. The `undo-tree-mode' provided by this package replaces
+;; Emacs' undo system with a system that treats undo history as what it is: a
+;; branching tree of changes. This simple idea allows the more intuitive
+;; behaviour of the standard undo/redo system to be combined with the power of
+;; never losing any history. An added side bonus is that undo history can in
+;; some cases be stored more efficiently, allowing more changes to accumulate
+;; before Emacs starts discarding history.
+;;
+;; The only downside to this more advanced yet simpler undo system is that it
+;; was inspired by Vim. But, after all, most successful religions steal the
+;; best ideas from their competitors!
+;;
+;;
+;; Installation
+;; ============
+;;
+;; This package has only been tested with Emacs versions 24 and CVS. It should
+;; work in Emacs versions 22 and 23 too, but will not work without
+;; modifications in earlier versions of Emacs.
+;;
+;; To install `undo-tree-mode', make sure this file is saved in a directory in
+;; your `load-path', and add the line:
+;;
+;;   (require 'undo-tree)
+;;
+;; to your .emacs file. Byte-compiling undo-tree.el is recommended (e.g. using
+;; "M-x byte-compile-file" from within emacs).
+;;
+;; If you want to replace the standard Emacs' undo system with the
+;; `undo-tree-mode' system in all buffers, you can enable it globally by
+;; adding:
+;;
+;;   (global-undo-tree-mode)
+;;
+;; to your .emacs file.
+;;
+;;
+;; Quick-Start
+;; ===========
+;;
+;; If you're the kind of person who likes to jump in the car and drive,
+;; without bothering to first figure out whether the button on the left dips
+;; the headlights or operates the ejector seat (after all, you'll soon figure
+;; it out when you push it), then here's the minimum you need to know:
+;;
+;; `undo-tree-mode' and `global-undo-tree-mode'
+;;   Enable undo-tree mode (either in the current buffer or globally).
+;;
+;; C-_  C-/  (`undo-tree-undo')
+;;   Undo changes.
+;;
+;; M-_  C-?  (`undo-tree-redo')
+;;   Redo changes.
+;;
+;; `undo-tree-switch-branch'
+;;   Switch undo-tree branch.
+;;   (What does this mean? Better press the button and see!)
+;;
+;; C-x u  (`undo-tree-visualize')
+;;   Visualize the undo tree.
+;;   (Better try pressing this button too!)
+;;
+;; C-x r u  (`undo-tree-save-state-to-register')
+;;   Save current buffer state to register.
+;;
+;; C-x r U  (`undo-tree-restore-state-from-register')
+;;   Restore buffer state from register.
+;;
+;;
+;;
+;; In the undo-tree visualizer:
+;;
+;; <up>  p  C-p  (`undo-tree-visualize-undo')
+;;   Undo changes.
+;;
+;; <down>  n  C-n  (`undo-tree-visualize-redo')
+;;   Redo changes.
+;;
+;; <left>  b  C-b  (`undo-tree-visualize-switch-branch-left')
+;;   Switch to previous undo-tree branch.
+;;
+;; <right>  f  C-f  (`undo-tree-visualize-switch-branch-right')
+;;   Switch to next undo-tree branch.
+;;
+;; C-<up>  M-{  (`undo-tree-visualize-undo-to-x')
+;;   Undo changes up to last branch point.
+;;
+;; C-<down>  M-}  (`undo-tree-visualize-redo-to-x')
+;;   Redo changes down to next branch point.
+;;
+;; <down>  n  C-n  (`undo-tree-visualize-redo')
+;;   Redo changes.
+;;
+;; <mouse-1>  (`undo-tree-visualizer-mouse-set')
+;;   Set state to node at mouse click.
+;;
+;; t  (`undo-tree-visualizer-toggle-timestamps')
+;;   Toggle display of time-stamps.
+;;
+;; d  (`undo-tree-visualizer-toggle-diff')
+;;   Toggle diff display.
+;;
+;; s  (`undo-tree-visualizer-selection-mode')
+;;   Toggle keyboard selection mode.
+;;
+;; q  (`undo-tree-visualizer-quit')
+;;   Quit undo-tree-visualizer.
+;;
+;; C-q  (`undo-tree-visualizer-abort')
+;;   Abort undo-tree-visualizer.
+;;
+;; ,  <
+;;   Scroll left.
+;;
+;; .  >
+;;   Scroll right.
+;;
+;; <pgup>  M-v
+;;   Scroll up.
+;;
+;; <pgdown>  C-v
+;;   Scroll down.
+;;
+;;
+;;
+;; In visualizer selection mode:
+;;
+;; <up>  p  C-p  (`undo-tree-visualizer-select-previous')
+;;   Select previous node.
+;;
+;; <down>  n  C-n  (`undo-tree-visualizer-select-next')
+;;   Select next node.
+;;
+;; <left>  b  C-b  (`undo-tree-visualizer-select-left')
+;;   Select left sibling node.
+;;
+;; <right>  f  C-f  (`undo-tree-visualizer-select-right')
+;;   Select right sibling node.
+;;
+;; <pgup>  M-v
+;;   Select node 10 above.
+;;
+;; <pgdown>  C-v
+;;   Select node 10 below.
+;;
+;; <enter>  (`undo-tree-visualizer-set')
+;;   Set state to selected node and exit selection mode.
+;;
+;; s  (`undo-tree-visualizer-mode')
+;;   Exit selection mode.
+;;
+;; t  (`undo-tree-visualizer-toggle-timestamps')
+;;   Toggle display of time-stamps.
+;;
+;; d  (`undo-tree-visualizer-toggle-diff')
+;;   Toggle diff display.
+;;
+;; q  (`undo-tree-visualizer-quit')
+;;   Quit undo-tree-visualizer.
+;;
+;; C-q  (`undo-tree-visualizer-abort')
+;;   Abort undo-tree-visualizer.
+;;
+;; ,  <
+;;   Scroll left.
+;;
+;; .  >
+;;   Scroll right.
+;;
+;;
+;;
+;; Persistent undo history:
+;;
+;; Note: Requires Emacs version 24.3 or higher.
+;;
+;; `undo-tree-auto-save-history' (variable)
+;;    automatically save and restore undo-tree history along with buffer
+;;    (disabled by default)
+;;
+;; `undo-tree-save-history' (command)
+;;    manually save undo history to file
+;;
+;; `undo-tree-load-history' (command)
+;;    manually load undo history from file
+;;
+;;
+;;
+;; Compressing undo history:
+;;
+;;   Undo history files cannot grow beyond the maximum undo tree size, which
+;;   is limited by `undo-limit', `undo-strong-limit' and
+;;   `undo-outer-limit'. Nevertheless, undo history files can grow quite
+;;   large. If you want to automatically compress undo history, add the
+;;   following advice to your .emacs file (replacing ".gz" with the filename
+;;   extension of your favourite compression algorithm):
+;;
+;;   (defadvice undo-tree-make-history-save-file-name
+;;     (after undo-tree activate)
+;;     (setq ad-return-value (concat ad-return-value ".gz")))
+;;
+;;
+;;
+;;
+;; Undo Systems
+;; ============
+;;
+;; To understand the different undo systems, it's easiest to consider an
+;; example. Imagine you make a few edits in a buffer. As you edit, you
+;; accumulate a history of changes, which we might visualize as a string of
+;; past buffer states, growing downwards:
+;;
+;;                                o  (initial buffer state)
+;;                                |
+;;                                |
+;;                                o  (first edit)
+;;                                |
+;;                                |
+;;                                o  (second edit)
+;;                                |
+;;                                |
+;;                                x  (current buffer state)
+;;
+;;
+;; Now imagine that you undo the last two changes. We can visualize this as
+;; rewinding the current state back two steps:
+;;
+;;                                o  (initial buffer state)
+;;                                |
+;;                                |
+;;                                x  (current buffer state)
+;;                                |
+;;                                |
+;;                                o
+;;                                |
+;;                                |
+;;                                o
+;;
+;;
+;; However, this isn't a good representation of what Emacs' undo system
+;; does. Instead, it treats the undos as *new* changes to the buffer, and adds
+;; them to the history:
+;;
+;;                                o  (initial buffer state)
+;;                                |
+;;                                |
+;;                                o  (first edit)
+;;                                |
+;;                                |
+;;                                o  (second edit)
+;;                                |
+;;                                |
+;;                                x  (buffer state before undo)
+;;                                |
+;;                                |
+;;                                o  (first undo)
+;;                                |
+;;                                |
+;;                                x  (second undo)
+;;
+;;
+;; Actually, since the buffer returns to a previous state after an undo,
+;; perhaps a better way to visualize it is to imagine the string of changes
+;; turning back on itself:
+;;
+;;        (initial buffer state)  o
+;;                                |
+;;                                |
+;;                  (first edit)  o  x  (second undo)
+;;                                |  |
+;;                                |  |
+;;                 (second edit)  o  o  (first undo)
+;;                                | /
+;;                                |/
+;;                                o  (buffer state before undo)
+;;
+;; Treating undos as new changes might seem a strange thing to do. But the
+;; advantage becomes clear as soon as we imagine what happens when you edit
+;; the buffer again. Since you've undone a couple of changes, new edits will
+;; branch off from the buffer state that you've rewound to. Conceptually, it
+;; looks like this:
+;;
+;;                                o  (initial buffer state)
+;;                                |
+;;                                |
+;;                                o
+;;                                |\
+;;                                | \
+;;                                o  x  (new edit)
+;;                                |
+;;                                |
+;;                                o
+;;
+;; The standard undo/redo system only lets you go backwards and forwards
+;; linearly. So as soon as you make that new edit, it discards the old
+;; branch. Emacs' undo just keeps adding changes to the end of the string. So
+;; the undo history in the two systems now looks like this:
+;;
+;;            Undo/Redo:                      Emacs' undo
+;;
+;;               o                                o
+;;               |                                |
+;;               |                                |
+;;               o                                o  o
+;;               .\                               |  |\
+;;               . \                              |  | \
+;;               .  x  (new edit)                 o  o  |
+;;   (discarded  .                                | /   |
+;;     branch)   .                                |/    |
+;;               .                                o     |
+;;                                                      |
+;;                                                      |
+;;                                                      x  (new edit)
+;;
+;; Now, what if you change your mind about those undos, and decide you did
+;; like those other changes you'd made after all? With the standard undo/redo
+;; system, you're lost. There's no way to recover them, because that branch
+;; was discarded when you made the new edit.
+;;
+;; However, in Emacs' undo system, those old buffer states are still there in
+;; the undo history. You just have to rewind back through the new edit, and
+;; back through the changes made by the undos, until you reach them. Of
+;; course, since Emacs treats undos (even undos of undos!) as new changes,
+;; you're really weaving backwards and forwards through the history, all the
+;; time adding new changes to the end of the string as you go:
+;;
+;;                       o
+;;                       |
+;;                       |
+;;                       o  o     o  (undo new edit)
+;;                       |  |\    |\
+;;                       |  | \   | \
+;;                       o  o  |  |  o  (undo the undo)
+;;                       | /   |  |  |
+;;                       |/    |  |  |
+;;      (trying to get   o     |  |  x  (undo the undo)
+;;       to this state)        | /
+;;                             |/
+;;                             o
+;;
+;; So far, this is still reasonably intuitive to use. It doesn't behave so
+;; differently to standard undo/redo, except that by going back far enough you
+;; can access changes that would be lost in standard undo/redo.
+;;
+;; However, imagine that after undoing as just described, you decide you
+;; actually want to rewind right back to the initial state. If you're lucky,
+;; and haven't invoked any command since the last undo, you can just keep on
+;; undoing until you get back to the start:
+;;
+;;      (trying to get   o              x  (got there!)
+;;       to this state)  |              |
+;;                       |              |
+;;                       o  o     o     o  (keep undoing)
+;;                       |  |\    |\    |
+;;                       |  | \   | \   |
+;;                       o  o  |  |  o  o  (keep undoing)
+;;                       | /   |  |  | /
+;;                       |/    |  |  |/
+;;      (already undid   o     |  |  o  (got this far)
+;;       to this state)        | /
+;;                             |/
+;;                             o
+;;
+;; But if you're unlucky, and you happen to have moved the point (say) after
+;; getting to the state labelled "got this far", then you've "broken the undo
+;; chain". Hold on to something solid, because things are about to get
+;; hairy. If you try to undo now, Emacs thinks you're trying to undo the
+;; undos! So to get back to the initial state you now have to rewind through
+;; *all* the changes, including the undos you just did:
+;;
+;;      (trying to get   o                          x  (finally got there!)
+;;       to this state)  |                          |
+;;                       |                          |
+;;                       o  o     o     o     o     o
+;;                       |  |\    |\    |\    |\    |
+;;                       |  | \   | \   | \   | \   |
+;;                       o  o  |  |  o  o  o  |  o  o
+;;                       | /   |  |  | /   |  |  | /
+;;                       |/    |  |  |/    |  |  |/
+;;      (already undid   o     |  |  o<.   |  |  o
+;;       to this state)        | /     :   | /
+;;                             |/      :   |/
+;;                             o       :   o
+;;                                     :
+;;                             (got this far, but
+;;                              broke the undo chain)
+;;
+;; Confused?
+;;
+;; In practice you can just hold down the undo key until you reach the buffer
+;; state that you want. But whatever you do, don't move around in the buffer
+;; to *check* that you've got back to where you want! Because you'll break the
+;; undo chain, and then you'll have to traverse the entire string of undos
+;; again, just to get back to the point at which you broke the
+;; chain. Undo-in-region and commands such as `undo-only' help to make using
+;; Emacs' undo a little easier, but nonetheless it remains confusing for many
+;; people.
+;;
+;;
+;; So what does `undo-tree-mode' do? Remember the diagram we drew to represent
+;; the history we've been discussing (make a few edits, undo a couple of them,
+;; and edit again)? The diagram that conceptually represented our undo
+;; history, before we started discussing specific undo systems? It looked like
+;; this:
+;;
+;;                                o  (initial buffer state)
+;;                                |
+;;                                |
+;;                                o
+;;                                |\
+;;                                | \
+;;                                o  x  (current state)
+;;                                |
+;;                                |
+;;                                o
+;;
+;; Well, that's *exactly* what the undo history looks like to
+;; `undo-tree-mode'.  It doesn't discard the old branch (as standard undo/redo
+;; does), nor does it treat undos as new changes to be added to the end of a
+;; linear string of buffer states (as Emacs' undo does). It just keeps track
+;; of the tree of branching changes that make up the entire undo history.
+;;
+;; If you undo from this point, you'll rewind back up the tree to the previous
+;; state:
+;;
+;;                                o
+;;                                |
+;;                                |
+;;                                x  (undo)
+;;                                |\
+;;                                | \
+;;                                o  o
+;;                                |
+;;                                |
+;;                                o
+;;
+;; If you were to undo again, you'd rewind back to the initial state. If on
+;; the other hand you redo the change, you'll end up back at the bottom of the
+;; most recent branch:
+;;
+;;                                o  (undo takes you here)
+;;                                |
+;;                                |
+;;                                o  (start here)
+;;                                |\
+;;                                | \
+;;                                o  x  (redo takes you here)
+;;                                |
+;;                                |
+;;                                o
+;;
+;; So far, this is just like the standard undo/redo system. But what if you
+;; want to return to a buffer state located on a previous branch of the
+;; history? Since `undo-tree-mode' keeps the entire history, you simply need
+;; to tell it to switch to a different branch, and then redo the changes you
+;; want:
+;;
+;;                                o
+;;                                |
+;;                                |
+;;                                o  (start here, but switch
+;;                                |\  to the other branch)
+;;                                | \
+;;                        (redo)  o  o
+;;                                |
+;;                                |
+;;                        (redo)  x
+;;
+;; Now you're on the other branch, if you undo and redo changes you'll stay on
+;; that branch, moving up and down through the buffer states located on that
+;; branch. Until you decide to switch branches again, of course.
+;;
+;; Real undo trees might have multiple branches and sub-branches:
+;;
+;;                                o
+;;                            ____|______
+;;                           /           \
+;;                          o             o
+;;                      ____|__         __|
+;;                     /    |  \       /   \
+;;                    o     o   o     o     x
+;;                    |               |
+;;                   / \             / \
+;;                  o   o           o   o
+;;
+;; Trying to imagine what Emacs' undo would do as you move about such a tree
+;; will likely frazzle your brain circuits! But in `undo-tree-mode', you're
+;; just moving around this undo history tree. Most of the time, you'll
+;; probably only need to stay on the most recent branch, in which case it
+;; behaves like standard undo/redo, and is just as simple to understand. But
+;; if you ever need to recover a buffer state on a different branch, the
+;; possibility of switching between branches and accessing the full undo
+;; history is still there.
+;;
+;;
+;;
+;; The Undo-Tree Visualizer
+;; ========================
+;;
+;; Actually, it gets better. You don't have to imagine all these tree
+;; diagrams, because `undo-tree-mode' includes an undo-tree visualizer which
+;; draws them for you! In fact, it draws even better diagrams: it highlights
+;; the node representing the current buffer state, it highlights the current
+;; branch, and you can toggle the display of time-stamps (by hitting "t") and
+;; a diff of the undo changes (by hitting "d"). (There's one other tiny
+;; difference: the visualizer puts the most recent branch on the left rather
+;; than the right.)
+;;
+;; Bring up the undo tree visualizer whenever you want by hitting "C-x u".
+;;
+;; In the visualizer, the usual keys for moving up and down a buffer instead
+;; move up and down the undo history tree (e.g. the up and down arrow keys, or
+;; "C-n" and "C-p"). The state of the "parent" buffer (the buffer whose undo
+;; history you are visualizing) is updated as you move around the undo tree in
+;; the visualizer. If you reach a branch point in the visualizer, the usual
+;; keys for moving forward and backward in a buffer instead switch branch
+;; (e.g. the left and right arrow keys, or "C-f" and "C-b").
+;;
+;; Clicking with the mouse on any node in the visualizer will take you
+;; directly to that node, resetting the state of the parent buffer to the
+;; state represented by that node.
+;;
+;; You can also select nodes directly using the keyboard, by hitting "s" to
+;; toggle selection mode. The usual motion keys now allow you to move around
+;; the tree without changing the parent buffer. Hitting <enter> will reset the
+;; state of the parent buffer to the state represented by the currently
+;; selected node.
+;;
+;; It can be useful to see how long ago the parent buffer was in the state
+;; represented by a particular node in the visualizer. Hitting "t" in the
+;; visualizer toggles the display of time-stamps for all the nodes. (Note
+;; that, because of the way `undo-tree-mode' works, these time-stamps may be
+;; somewhat later than the true times, especially if it's been a long time
+;; since you last undid any changes.)
+;;
+;; To get some idea of what changes are represented by a given node in the
+;; tree, it can be useful to see a diff of the changes. Hit "d" in the
+;; visualizer to toggle a diff display. This normally displays a diff between
+;; the current state and the previous one, i.e. it shows you the changes that
+;; will be applied if you undo (move up the tree). However, the diff display
+;; really comes into its own in the visualizer's selection mode (see above),
+;; where it instead shows a diff between the current state and the currently
+;; selected state, i.e. it shows you the changes that will be applied if you
+;; reset to the selected state.
+;;
+;; (Note that the diff is generated by the Emacs `diff' command, and is
+;; displayed using `diff-mode'. See the corresponding customization groups if
+;; you want to customize the diff display.)
+;;
+;; Finally, hitting "q" will quit the visualizer, leaving the parent buffer in
+;; whatever state you ended at. Hitting "C-q" will abort the visualizer,
+;; returning the parent buffer to whatever state it was originally in when the
+;; visualizer was .
+;;
+;;
+;;
+;; Undo-in-Region
+;; ==============
+;;
+;; Emacs allows a very useful and powerful method of undoing only selected
+;; changes: when a region is active, only changes that affect the text within
+;; that region will be undone. With the standard Emacs undo system, changes
+;; produced by undoing-in-region naturally get added onto the end of the
+;; linear undo history:
+;;
+;;                       o
+;;                       |
+;;                       |  x  (second undo-in-region)
+;;                       o  |
+;;                       |  |
+;;                       |  o  (first undo-in-region)
+;;                       o  |
+;;                       | /
+;;                       |/
+;;                       o
+;;
+;; You can of course redo these undos-in-region as usual, by undoing the
+;; undos:
+;;
+;;                       o
+;;                       |
+;;                       |  o_
+;;                       o  | \
+;;                       |  |  |
+;;                       |  o  o  (undo the undo-in-region)
+;;                       o  |  |
+;;                       | /   |
+;;                       |/    |
+;;                       o     x  (undo the undo-in-region)
+;;
+;;
+;; In `undo-tree-mode', undo-in-region works similarly: when there's an active
+;; region, undoing only undoes changes that affect that region. However, the
+;; way these undos-in-region are recorded in the undo history is quite
+;; different. In `undo-tree-mode', undo-in-region creates a new branch in the
+;; undo history. The new branch consists of an undo step that undoes some of
+;; the changes that affect the current region, and another step that undoes
+;; the remaining changes needed to rejoin the previous undo history.
+;;
+;;      Previous undo history                Undo-in-region
+;;
+;;               o                                o
+;;               |                                |
+;;               |                                |
+;;               o                                o
+;;               |                                |\
+;;               |                                | \
+;;               o                                o  x  (undo-in-region)
+;;               |                                |  |
+;;               |                                |  |
+;;               x                                o  o
+;;
+;; As long as you don't change the active region after undoing-in-region,
+;; continuing to undo-in-region extends the new branch, pulling more changes
+;; that affect the current region into an undo step immediately above your
+;; current location in the undo tree, and pushing the point at which the new
+;; branch is attached further up the tree:
+;;
+;;      First undo-in-region                 Second undo-in-region
+;;
+;;               o                                o
+;;               |                                |\
+;;               |                                | \
+;;               o                                o  x  (undo-in-region)
+;;               |\                               |  |
+;;               | \                              |  |
+;;               o  x                             o  o
+;;               |  |                             |  |
+;;               |  |                             |  |
+;;               o  o                             o  o
+;;
+;; Redoing takes you back down the undo tree, as usual (as long as you haven't
+;; changed the active region after undoing-in-region, it doesn't matter if it
+;; is still active):
+;;
+;;                       o
+;;			 |\
+;;			 | \
+;;			 o  o
+;;			 |  |
+;;			 |  |
+;;			 o  o  (redo)
+;;			 |  |
+;;			 |  |
+;;			 o  x  (redo)
+;;
+;;
+;; What about redo-in-region? Obviously, this only makes sense if you have
+;; already undone some changes, so that there are some changes to redo!
+;; Redoing-in-region splits off a new branch of the undo history below your
+;; current location in the undo tree. This time, the new branch consists of a
+;; redo step that redoes some of the redo changes that affect the current
+;; region, followed by all the remaining redo changes.
+;;
+;;      Previous undo history                Redo-in-region
+;;
+;;               o                                o
+;;               |                                |
+;;               |                                |
+;;               x                                o
+;;               |                                |\
+;;               |                                | \
+;;               o                                o  x  (redo-in-region)
+;;               |                                |  |
+;;               |                                |  |
+;;               o                                o  o
+;;
+;; As long as you don't change the active region after redoing-in-region,
+;; continuing to redo-in-region extends the new branch, pulling more redo
+;; changes into a redo step immediately below your current location in the
+;; undo tree.
+;;
+;;      First redo-in-region                 Second redo-in-region
+;;
+;;          o                                     o
+;;          |                                     |
+;;          |                                     |
+;;          o                                     o
+;;          |\                                    |\
+;;          | \                                   | \
+;;          o  x  (redo-in-region)                o  o
+;;          |  |                                  |  |
+;;          |  |                                  |  |
+;;          o  o                                  o  x  (redo-in-region)
+;;                                                   |
+;;                                                   |
+;;                                                   o
+;;
+;; Note that undo-in-region and redo-in-region only ever add new changes to
+;; the undo tree, they *never* modify existing undo history. So you can always
+;; return to previous buffer states by switching to a previous branch of the
+;; tree.
+
+
+
+;;; Code:
+
+(eval-when-compile (require 'cl))
+(require 'diff)
+
+
+
+;;; =====================================================================
+;;;              Compatibility hacks for older Emacsen
+
+;; `characterp' isn't defined in Emacs versions < 23
+(unless (fboundp 'characterp)
+  (defalias 'characterp 'char-valid-p))
+
+;; `region-active-p' isn't defined in Emacs versions < 23
+(unless (fboundp 'region-active-p)
+  (defun region-active-p () (and transient-mark-mode mark-active)))
+
+
+;; `registerv' defstruct isn't defined in Emacs versions < 24
+(unless (fboundp 'registerv-make)
+  (defmacro registerv-make (data &rest _dummy) data))
+
+(unless (fboundp 'registerv-data)
+  (defmacro registerv-data (data) data))
+
+
+;; `diff-no-select' and `diff-file-local-copy' aren't defined in Emacs
+;; versions < 24 (copied and adapted from Emacs 24)
+(unless (fboundp 'diff-no-select)
+  (defun diff-no-select (old new &optional switches no-async buf)
+    ;; Noninteractive helper for creating and reverting diff buffers
+    (unless (bufferp new) (setq new (expand-file-name new)))
+    (unless (bufferp old) (setq old (expand-file-name old)))
+    (or switches (setq switches diff-switches)) ; If not specified, use default.
+    (unless (listp switches) (setq switches (list switches)))
+    (or buf (setq buf (get-buffer-create "*Diff*")))
+    (let* ((old-alt (diff-file-local-copy old))
+	   (new-alt (diff-file-local-copy new))
+	   (command
+	    (mapconcat 'identity
+		       `(,diff-command
+			 ;; Use explicitly specified switches
+			 ,@switches
+			 ,@(mapcar #'shell-quote-argument
+				   (nconc
+				    (when (or old-alt new-alt)
+				      (list "-L" (if (stringp old)
+						     old (prin1-to-string old))
+					    "-L" (if (stringp new)
+						     new (prin1-to-string new))))
+				    (list (or old-alt old)
+					  (or new-alt new)))))
+		       " "))
+	   (thisdir default-directory))
+      (with-current-buffer buf
+	(setq buffer-read-only t)
+	(buffer-disable-undo (current-buffer))
+	(let ((inhibit-read-only t))
+	  (erase-buffer))
+	(buffer-enable-undo (current-buffer))
+	(diff-mode)
+	(set (make-local-variable 'revert-buffer-function)
+	     (lambda (_ignore-auto _noconfirm)
+	       (diff-no-select old new switches no-async (current-buffer))))
+	(setq default-directory thisdir)
+	(let ((inhibit-read-only t))
+	  (insert command "\n"))
+	(if (and (not no-async) (fboundp 'start-process))
+	    (let ((proc (start-process "Diff" buf shell-file-name
+				       shell-command-switch command)))
+	      (set-process-filter proc 'diff-process-filter)
+	      (set-process-sentinel
+	       proc (lambda (proc _msg)
+		      (with-current-buffer (process-buffer proc)
+			(diff-sentinel (process-exit-status proc))
+			(if old-alt (delete-file old-alt))
+			(if new-alt (delete-file new-alt))))))
+	  ;; Async processes aren't available.
+	  (let ((inhibit-read-only t))
+	    (diff-sentinel
+	     (call-process shell-file-name nil buf nil
+			   shell-command-switch command))
+	    (if old-alt (delete-file old-alt))
+	    (if new-alt (delete-file new-alt)))))
+      buf)))
+
+(unless (fboundp 'diff-file-local-copy)
+  (defun diff-file-local-copy (file-or-buf)
+    (if (bufferp file-or-buf)
+	(with-current-buffer file-or-buf
+	  (let ((tempfile (make-temp-file "buffer-content-")))
+	    (write-region nil nil tempfile nil 'nomessage)
+	    tempfile))
+      (file-local-copy file-or-buf))))
+
+
+;; `user-error' isn't defined in Emacs < 24.3
+(unless (fboundp 'user-error)
+  (defalias 'user-error 'error)
+  ;; prevent debugger being called on user errors
+  (add-to-list 'debug-ignored-errors "^No further undo information")
+  (add-to-list 'debug-ignored-errors "^No further redo information")
+  (add-to-list 'debug-ignored-errors "^No further redo information for region"))
+
+
+
+
+
+;;; =====================================================================
+;;;              Global variables and customization options
+
+(defvar buffer-undo-tree nil
+  "Tree of undo entries in current buffer.")
+(put 'buffer-undo-tree 'permanent-local t)
+(make-variable-buffer-local 'buffer-undo-tree)
+
+
+(defgroup undo-tree nil
+  "Tree undo/redo."
+  :group 'undo)
+
+(defcustom undo-tree-mode-lighter " Undo-Tree"
+  "Lighter displayed in mode line
+when `undo-tree-mode' is enabled."
+  :group 'undo-tree
+  :type 'string)
+
+
+(defcustom undo-tree-incompatible-major-modes '(term-mode)
+  "List of major-modes in which `undo-tree-mode' should not be enabled.
+\(See `turn-on-undo-tree-mode'.\)"
+  :group 'undo-tree
+  :type '(repeat symbol))
+
+
+(defcustom undo-tree-enable-undo-in-region t
+  "When non-nil, enable undo-in-region.
+
+When undo-in-region is enabled, undoing or redoing when the
+region is active (in `transient-mark-mode') or with a prefix
+argument (not in `transient-mark-mode') only undoes changes
+within the current region."
+  :group 'undo-tree
+  :type 'boolean)
+
+
+(defcustom undo-tree-auto-save-history nil
+  "When non-nil, `undo-tree-mode' will save undo history to file
+when a buffer is saved to file.
+
+It will automatically load undo history when a buffer is loaded
+from file, if an undo save file exists.
+
+By default, undo-tree history is saved to a file called
+\".<buffer-file-name>.~undo-tree~\" in the same directory as the
+file itself. To save under a different directory, customize
+`undo-tree-history-directory-alist' (see the documentation for
+that variable for details).
+
+WARNING! `undo-tree-auto-save-history' will not work properly in
+Emacs versions prior to 24.3, so it cannot be enabled via
+the customization interface in versions earlier than that one. To
+ignore this warning and enable it regardless, set
+`undo-tree-auto-save-history' to a non-nil value outside of
+customize."
+  :group 'undo-tree
+  :type (if (version-list-< (version-to-list emacs-version) '(24 3))
+	    '(choice (const :tag "<disabled>" nil))
+	  'boolean))
+
+
+(defcustom undo-tree-history-directory-alist nil
+  "Alist of filename patterns and undo history directory names.
+Each element looks like (REGEXP . DIRECTORY).  Undo history for
+files with names matching REGEXP will be saved in DIRECTORY.
+DIRECTORY may be relative or absolute.  If it is absolute, so
+that all matching files are backed up into the same directory,
+the file names in this directory will be the full name of the
+file backed up with all directory separators changed to `!' to
+prevent clashes.  This will not work correctly if your filesystem
+truncates the resulting name.
+
+For the common case of all backups going into one directory, the
+alist should contain a single element pairing \".\" with the
+appropriate directory name.
+
+If this variable is nil, or it fails to match a filename, the
+backup is made in the original file's directory.
+
+On MS-DOS filesystems without long names this variable is always
+ignored."
+  :group 'undo-tree
+  :type '(repeat (cons (regexp :tag "Regexp matching filename")
+		       (directory :tag "Undo history directory name"))))
+
+
+
+(defcustom undo-tree-visualizer-relative-timestamps t
+  "When non-nil, display times relative to current time
+when displaying time stamps in visualizer.
+
+Otherwise, display absolute times."
+  :group 'undo-tree
+  :type 'boolean)
+
+
+(defcustom undo-tree-visualizer-timestamps nil
+  "When non-nil, display time-stamps by default
+in undo-tree visualizer.
+
+\\<undo-tree-visualizer-mode-map>You can always toggle time-stamps on and off \
+using \\[undo-tree-visualizer-toggle-timestamps], regardless of the
+setting of this variable."
+  :group 'undo-tree
+  :type 'boolean)
+
+
+(defcustom undo-tree-visualizer-diff nil
+  "When non-nil, display diff by default in undo-tree visualizer.
+
+\\<undo-tree-visualizer-mode-map>You can always toggle the diff display \
+using \\[undo-tree-visualizer-toggle-diff], regardless of the
+setting of this variable."
+  :group 'undo-tree
+  :type 'boolean)
+
+
+(defcustom undo-tree-visualizer-lazy-drawing 100
+  "When non-nil, use lazy undo-tree drawing in visualizer.
+
+Setting this to a number causes the visualizer to switch to lazy
+drawing when the number of nodes in the tree is larger than this
+value.
+
+Lazy drawing means that only the visible portion of the tree will
+be drawn initially, and the tree will be extended later as
+needed. For the most part, the only visible effect of this is to
+significantly speed up displaying the visualizer for very large
+trees.
+
+There is one potential negative effect of lazy drawing. Other
+branches of the tree will only be drawn once the node from which
+they branch off becomes visible. So it can happen that certain
+portions of the tree that would be shown with lazy drawing
+disabled, will not be drawn immediately when it is
+enabled. However, this effect is quite rare in practice."
+  :group 'undo-tree
+  :type '(choice (const :tag "never" nil)
+		 (const :tag "always" t)
+		 (integer :tag "> size")))
+
+
+(defface undo-tree-visualizer-default-face
+  '((((class color)) :foreground "gray"))
+  "Face used to draw undo-tree in visualizer."
+  :group 'undo-tree)
+
+(defface undo-tree-visualizer-current-face
+  '((((class color)) :foreground "red"))
+  "Face used to highlight current undo-tree node in visualizer."
+  :group 'undo-tree)
+
+(defface undo-tree-visualizer-active-branch-face
+  '((((class color) (background dark))
+     (:foreground "white" :weight bold))
+    (((class color) (background light))
+     (:foreground "black" :weight bold)))
+  "Face used to highlight active undo-tree branch in visualizer."
+  :group 'undo-tree)
+
+(defface undo-tree-visualizer-register-face
+  '((((class color)) :foreground "yellow"))
+  "Face used to highlight undo-tree nodes saved to a register
+in visualizer."
+  :group 'undo-tree)
+
+(defface undo-tree-visualizer-unmodified-face
+  '((((class color)) :foreground "cyan"))
+  "Face used to highlight nodes corresponding to unmodified buffers
+in visualizer."
+  :group 'undo-tree)
+
+
+(defvar undo-tree-visualizer-parent-buffer nil
+  "Parent buffer in visualizer.")
+(put 'undo-tree-visualizer-parent-buffer 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-parent-buffer)
+
+;; stores modification time of parent buffer's file, if any
+(defvar undo-tree-visualizer-parent-mtime nil)
+(put 'undo-tree-visualizer-parent-mtime 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-parent-mtime)
+
+;; stores current horizontal spacing needed for drawing undo-tree
+(defvar undo-tree-visualizer-spacing nil)
+(put 'undo-tree-visualizer-spacing 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-spacing)
+
+;; calculate horizontal spacing required for drawing tree with current
+;; settings
+(defsubst undo-tree-visualizer-calculate-spacing ()
+  (if undo-tree-visualizer-timestamps
+      (if undo-tree-visualizer-relative-timestamps 9 13)
+    3))
+
+;; holds node that was current when visualizer was invoked
+(defvar undo-tree-visualizer-initial-node nil)
+(put 'undo-tree-visualizer-initial-node 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-initial-node)
+
+;; holds currently selected node in visualizer selection mode
+(defvar undo-tree-visualizer-selected-node nil)
+(put 'undo-tree-visualizer-selected-node 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-selected)
+
+;; used to store nodes at edge of currently drawn portion of tree
+(defvar undo-tree-visualizer-needs-extending-down nil)
+(put 'undo-tree-visualizer-needs-extending-down 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-needs-extending-down)
+(defvar undo-tree-visualizer-needs-extending-up nil)
+(put 'undo-tree-visualizer-needs-extending-up 'permanent-local t)
+(make-variable-buffer-local 'undo-tree-visualizer-needs-extending-up)
+
+;; dynamically bound to t when undoing from visualizer, to inhibit
+;; `undo-tree-kill-visualizer' hook function in parent buffer
+(defvar undo-tree-inhibit-kill-visualizer nil)
+
+;; can be let-bound to a face name, used in drawing functions
+(defvar undo-tree-insert-face nil)
+
+;; visualizer buffer names
+(defconst undo-tree-visualizer-buffer-name " *undo-tree*")
+(defconst undo-tree-diff-buffer-name "*undo-tree Diff*")
+
+;; install history-auto-save hooks
+(add-hook 'write-file-functions 'undo-tree-save-history-hook)
+(add-hook 'find-file-hook 'undo-tree-load-history-hook)
+
+
+
+
+;;; =================================================================
+;;;                          Default keymaps
+
+(defvar undo-tree-map nil
+  "Keymap used in undo-tree-mode.")
+
+(unless undo-tree-map
+  (let ((map (make-sparse-keymap)))
+    ;; remap `undo' and `undo-only' to `undo-tree-undo'
+    (define-key map [remap undo] 'undo-tree-undo)
+    (define-key map [remap undo-only] 'undo-tree-undo)
+    ;; bind standard undo bindings (since these match redo counterparts)
+    (define-key map (kbd "C-/") 'undo-tree-undo)
+    (define-key map "\C-_" 'undo-tree-undo)
+    ;; redo doesn't exist normally, so define our own keybindings
+    (define-key map (kbd "C-?") 'undo-tree-redo)
+    (define-key map (kbd "M-_") 'undo-tree-redo)
+    ;; just in case something has defined `redo'...
+    (define-key map [remap redo] 'undo-tree-redo)
+    ;; we use "C-x u" for the undo-tree visualizer
+    (define-key map (kbd "\C-x u") 'undo-tree-visualize)
+    ;; bind register commands
+    (define-key map (kbd "C-x r u") 'undo-tree-save-state-to-register)
+    (define-key map (kbd "C-x r U") 'undo-tree-restore-state-from-register)
+    ;; set keymap
+    (setq undo-tree-map map)))
+
+
+(defvar undo-tree-visualizer-mode-map nil
+  "Keymap used in undo-tree visualizer.")
+
+(unless undo-tree-visualizer-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; vertical motion keys undo/redo
+    (define-key map [remap previous-line] 'undo-tree-visualize-undo)
+    (define-key map [remap next-line] 'undo-tree-visualize-redo)
+    (define-key map [up] 'undo-tree-visualize-undo)
+    (define-key map "p" 'undo-tree-visualize-undo)
+    (define-key map "\C-p" 'undo-tree-visualize-undo)
+    (define-key map [down] 'undo-tree-visualize-redo)
+    (define-key map "n" 'undo-tree-visualize-redo)
+    (define-key map "\C-n" 'undo-tree-visualize-redo)
+    ;; horizontal motion keys switch branch
+    (define-key map [remap forward-char]
+      'undo-tree-visualize-switch-branch-right)
+    (define-key map [remap backward-char]
+      'undo-tree-visualize-switch-branch-left)
+    (define-key map [right] 'undo-tree-visualize-switch-branch-right)
+    (define-key map "f" 'undo-tree-visualize-switch-branch-right)
+    (define-key map "\C-f" 'undo-tree-visualize-switch-branch-right)
+    (define-key map [left] 'undo-tree-visualize-switch-branch-left)
+    (define-key map "b" 'undo-tree-visualize-switch-branch-left)
+    (define-key map "\C-b" 'undo-tree-visualize-switch-branch-left)
+    ;; paragraph motion keys undo/redo to significant points in tree
+    (define-key map [remap backward-paragraph] 'undo-tree-visualize-undo-to-x)
+    (define-key map [remap forward-paragraph] 'undo-tree-visualize-redo-to-x)
+    (define-key map "\M-{" 'undo-tree-visualize-undo-to-x)
+    (define-key map "\M-}" 'undo-tree-visualize-redo-to-x)
+    (define-key map [C-up] 'undo-tree-visualize-undo-to-x)
+    (define-key map [C-down] 'undo-tree-visualize-redo-to-x)
+    ;; mouse sets buffer state to node at click
+    (define-key map [mouse-1] 'undo-tree-visualizer-mouse-set)
+    ;; toggle timestamps
+    (define-key map "t" 'undo-tree-visualizer-toggle-timestamps)
+    ;; toggle diff
+    (define-key map "d" 'undo-tree-visualizer-toggle-diff)
+    ;; toggle selection mode
+    (define-key map "s" 'undo-tree-visualizer-selection-mode)
+    ;; horizontal scrolling may be needed if the tree is very wide
+    (define-key map "," 'undo-tree-visualizer-scroll-left)
+    (define-key map "." 'undo-tree-visualizer-scroll-right)
+    (define-key map "<" 'undo-tree-visualizer-scroll-left)
+    (define-key map ">" 'undo-tree-visualizer-scroll-right)
+    ;; vertical scrolling may be needed if the tree is very tall
+    (define-key map [next] 'undo-tree-visualizer-scroll-up)
+    (define-key map [prior] 'undo-tree-visualizer-scroll-down)
+    ;; quit/abort visualizer
+    (define-key map "q" 'undo-tree-visualizer-quit)
+    (define-key map "\C-q" 'undo-tree-visualizer-abort)
+    ;; set keymap
+    (setq undo-tree-visualizer-mode-map map)))
+
+
+(defvar undo-tree-visualizer-selection-mode-map nil
+  "Keymap used in undo-tree visualizer selection mode.")
+
+(unless undo-tree-visualizer-selection-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; vertical motion keys move up and down tree
+    (define-key map [remap previous-line]
+      'undo-tree-visualizer-select-previous)
+    (define-key map [remap next-line]
+      'undo-tree-visualizer-select-next)
+    (define-key map [up] 'undo-tree-visualizer-select-previous)
+    (define-key map "p" 'undo-tree-visualizer-select-previous)
+    (define-key map "\C-p" 'undo-tree-visualizer-select-previous)
+    (define-key map [down] 'undo-tree-visualizer-select-next)
+    (define-key map "n" 'undo-tree-visualizer-select-next)
+    (define-key map "\C-n" 'undo-tree-visualizer-select-next)
+    ;; vertical scroll keys move up and down quickly
+    (define-key map [next]
+      (lambda () (interactive) (undo-tree-visualizer-select-next 10)))
+    (define-key map [prior]
+      (lambda () (interactive) (undo-tree-visualizer-select-previous 10)))
+    ;; horizontal motion keys move to left and right siblings
+    (define-key map [remap forward-char] 'undo-tree-visualizer-select-right)
+    (define-key map [remap backward-char] 'undo-tree-visualizer-select-left)
+    (define-key map [right] 'undo-tree-visualizer-select-right)
+    (define-key map "f" 'undo-tree-visualizer-select-right)
+    (define-key map "\C-f" 'undo-tree-visualizer-select-right)
+    (define-key map [left] 'undo-tree-visualizer-select-left)
+    (define-key map "b" 'undo-tree-visualizer-select-left)
+    (define-key map "\C-b" 'undo-tree-visualizer-select-left)
+    ;; horizontal scroll keys move left or right quickly
+    (define-key map ","
+      (lambda () (interactive) (undo-tree-visualizer-select-left 10)))
+    (define-key map "."
+      (lambda () (interactive) (undo-tree-visualizer-select-right 10)))
+    (define-key map "<"
+      (lambda () (interactive) (undo-tree-visualizer-select-left 10)))
+    (define-key map ">"
+      (lambda () (interactive) (undo-tree-visualizer-select-right 10)))
+    ;; <enter> sets buffer state to node at point
+    (define-key map "\r" 'undo-tree-visualizer-set)
+    ;; mouse selects node at click
+    (define-key map [mouse-1] 'undo-tree-visualizer-mouse-select)
+    ;; toggle diff
+    (define-key map "d" 'undo-tree-visualizer-selection-toggle-diff)
+    ;; set keymap
+    (setq undo-tree-visualizer-selection-mode-map map)))
+
+
+(defvar undo-tree-old-undo-menu-item nil)
+
+(defun undo-tree-update-menu-bar ()
+  "Update `undo-tree-mode' Edit menu items."
+  (if undo-tree-mode
+      (progn
+	;; save old undo menu item, and install undo/redo menu items
+	(setq undo-tree-old-undo-menu-item
+	      (cdr (assq 'undo (lookup-key global-map [menu-bar edit]))))
+	(define-key (lookup-key global-map [menu-bar edit])
+	  [undo] '(menu-item "Undo" undo-tree-undo
+			     :enable (and undo-tree-mode
+					  (not buffer-read-only)
+					  (not (eq t buffer-undo-list))
+					  (undo-tree-node-previous
+					   (undo-tree-current buffer-undo-tree)))
+			     :help "Undo last operation"))
+	(define-key-after (lookup-key global-map [menu-bar edit])
+	  [redo] '(menu-item "Redo" undo-tree-redo
+			     :enable (and undo-tree-mode
+					  (not buffer-read-only)
+					  (not (eq t buffer-undo-list))
+					  (undo-tree-node-next
+					   (undo-tree-current buffer-undo-tree)))
+			     :help "Redo last operation")
+	  'undo))
+    ;; uninstall undo/redo menu items
+    (define-key (lookup-key global-map [menu-bar edit])
+      [undo] undo-tree-old-undo-menu-item)
+    (define-key (lookup-key global-map [menu-bar edit])
+      [redo] nil)))
+
+(add-hook 'menu-bar-update-hook 'undo-tree-update-menu-bar)
+
+
+
+
+
+;;; =====================================================================
+;;;                     Undo-tree data structure
+
+(defstruct
+  (undo-tree
+   :named
+   (:constructor nil)
+   (:constructor make-undo-tree
+                 (&aux
+                  (root (undo-tree-make-node nil nil))
+                  (current root)
+                  (size 0)
+		  (count 0)
+		  (object-pool (make-hash-table :test 'eq :weakness 'value))))
+   ;;(:copier nil)
+   )
+  root current size count object-pool)
+
+
+
+(defstruct
+  (undo-tree-node
+   (:type vector)   ; create unnamed struct
+   (:constructor nil)
+   (:constructor undo-tree-make-node
+                 (previous undo
+		  &optional redo
+                  &aux
+                  (timestamp (current-time))
+                  (branch 0)))
+   (:constructor undo-tree-make-node-backwards
+                 (next-node undo
+		  &optional redo
+                  &aux
+                  (next (list next-node))
+                  (timestamp (current-time))
+                  (branch 0)))
+   (:copier nil))
+  previous next undo redo timestamp branch meta-data)
+
+
+(defmacro undo-tree-node-p (n)
+  (let ((len (length (undo-tree-make-node nil nil))))
+    `(and (vectorp ,n) (= (length ,n) ,len))))
+
+
+
+(defstruct
+  (undo-tree-region-data
+   (:type vector)   ; create unnamed struct
+   (:constructor nil)
+   (:constructor undo-tree-make-region-data
+		 (&optional undo-beginning undo-end
+			     redo-beginning redo-end))
+   (:constructor undo-tree-make-undo-region-data
+		 (undo-beginning undo-end))
+   (:constructor undo-tree-make-redo-region-data
+		 (redo-beginning redo-end))
+   (:copier nil))
+  undo-beginning undo-end redo-beginning redo-end)
+
+
+(defmacro undo-tree-region-data-p (r)
+  (let ((len (length (undo-tree-make-region-data))))
+    `(and (vectorp ,r) (= (length ,r) ,len))))
+
+(defmacro undo-tree-node-clear-region-data (node)
+  `(setf (undo-tree-node-meta-data ,node)
+	 (delq nil
+	       (delq :region
+		     (plist-put (undo-tree-node-meta-data ,node)
+				:region nil)))))
+
+
+(defmacro undo-tree-node-undo-beginning (node)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (when (undo-tree-region-data-p r)
+       (undo-tree-region-data-undo-beginning r))))
+
+(defmacro undo-tree-node-undo-end (node)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (when (undo-tree-region-data-p r)
+       (undo-tree-region-data-undo-end r))))
+
+(defmacro undo-tree-node-redo-beginning (node)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (when (undo-tree-region-data-p r)
+       (undo-tree-region-data-redo-beginning r))))
+
+(defmacro undo-tree-node-redo-end (node)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (when (undo-tree-region-data-p r)
+       (undo-tree-region-data-redo-end r))))
+
+
+(defsetf undo-tree-node-undo-beginning (node) (val)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (unless (undo-tree-region-data-p r)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :region
+			(setq r (undo-tree-make-region-data)))))
+     (setf (undo-tree-region-data-undo-beginning r) ,val)))
+
+(defsetf undo-tree-node-undo-end (node) (val)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (unless (undo-tree-region-data-p r)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :region
+			(setq r (undo-tree-make-region-data)))))
+     (setf (undo-tree-region-data-undo-end r) ,val)))
+
+(defsetf undo-tree-node-redo-beginning (node) (val)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (unless (undo-tree-region-data-p r)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :region
+			(setq r (undo-tree-make-region-data)))))
+     (setf (undo-tree-region-data-redo-beginning r) ,val)))
+
+(defsetf undo-tree-node-redo-end (node) (val)
+  `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region)))
+     (unless (undo-tree-region-data-p r)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :region
+			(setq r (undo-tree-make-region-data)))))
+     (setf (undo-tree-region-data-redo-end r) ,val)))
+
+
+
+(defstruct
+  (undo-tree-visualizer-data
+   (:type vector)   ; create unnamed struct
+   (:constructor nil)
+   (:constructor undo-tree-make-visualizer-data
+		 (&optional lwidth cwidth rwidth marker))
+   (:copier nil))
+  lwidth cwidth rwidth marker)
+
+
+(defmacro undo-tree-visualizer-data-p (v)
+  (let ((len (length (undo-tree-make-visualizer-data))))
+    `(and (vectorp ,v) (= (length ,v) ,len))))
+
+(defun undo-tree-node-clear-visualizer-data (node)
+  (let ((plist (undo-tree-node-meta-data node)))
+    (if (eq (car plist) :visualizer)
+	(setf (undo-tree-node-meta-data node) (nthcdr 2 plist))
+      (while (and plist (not (eq (cadr plist) :visualizer)))
+	(setq plist (cdr plist)))
+      (if plist (setcdr plist (nthcdr 3 plist))))))
+
+(defmacro undo-tree-node-lwidth (node)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (when (undo-tree-visualizer-data-p v)
+       (undo-tree-visualizer-data-lwidth v))))
+
+(defmacro undo-tree-node-cwidth (node)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (when (undo-tree-visualizer-data-p v)
+       (undo-tree-visualizer-data-cwidth v))))
+
+(defmacro undo-tree-node-rwidth (node)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (when (undo-tree-visualizer-data-p v)
+       (undo-tree-visualizer-data-rwidth v))))
+
+(defmacro undo-tree-node-marker (node)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (when (undo-tree-visualizer-data-p v)
+       (undo-tree-visualizer-data-marker v))))
+
+
+(defsetf undo-tree-node-lwidth (node) (val)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (unless (undo-tree-visualizer-data-p v)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :visualizer
+			(setq v (undo-tree-make-visualizer-data)))))
+     (setf (undo-tree-visualizer-data-lwidth v) ,val)))
+
+(defsetf undo-tree-node-cwidth (node) (val)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (unless (undo-tree-visualizer-data-p v)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :visualizer
+			(setq v (undo-tree-make-visualizer-data)))))
+     (setf (undo-tree-visualizer-data-cwidth v) ,val)))
+
+(defsetf undo-tree-node-rwidth (node) (val)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (unless (undo-tree-visualizer-data-p v)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :visualizer
+			(setq v (undo-tree-make-visualizer-data)))))
+     (setf (undo-tree-visualizer-data-rwidth v) ,val)))
+
+(defsetf undo-tree-node-marker (node) (val)
+  `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer)))
+     (unless (undo-tree-visualizer-data-p v)
+       (setf (undo-tree-node-meta-data ,node)
+	     (plist-put (undo-tree-node-meta-data ,node) :visualizer
+			(setq v (undo-tree-make-visualizer-data)))))
+     (setf (undo-tree-visualizer-data-marker v) ,val)))
+
+
+
+(defstruct
+  (undo-tree-register-data
+   (:type vector)
+   (:constructor nil)
+   (:constructor undo-tree-make-register-data (buffer node)))
+  buffer node)
+
+(defun undo-tree-register-data-p (data)
+  (and (vectorp data)
+       (= (length data) 2)
+       (undo-tree-node-p (undo-tree-register-data-node data))))
+
+(defun undo-tree-register-data-print-func (data)
+  (princ (format "an undo-tree state for buffer %s"
+		 (undo-tree-register-data-buffer data))))
+
+(defmacro undo-tree-node-register (node)
+  `(plist-get (undo-tree-node-meta-data ,node) :register))
+
+(defsetf undo-tree-node-register (node) (val)
+  `(setf (undo-tree-node-meta-data ,node)
+	 (plist-put (undo-tree-node-meta-data ,node) :register ,val)))
+
+
+
+
+;;; =====================================================================
+;;;              Basic undo-tree data structure functions
+
+(defun undo-tree-grow (undo)
+  "Add an UNDO node to current branch of `buffer-undo-tree'."
+  (let* ((current (undo-tree-current buffer-undo-tree))
+         (new (undo-tree-make-node current undo)))
+    (push new (undo-tree-node-next current))
+    (setf (undo-tree-current buffer-undo-tree) new)))
+
+
+(defun undo-tree-grow-backwards (node undo &optional redo)
+  "Add new node *above* undo-tree NODE, and return new node.
+Note that this will overwrite NODE's \"previous\" link, so should
+only be used on a detached NODE, never on nodes that are already
+part of `buffer-undo-tree'."
+  (let ((new (undo-tree-make-node-backwards node undo redo)))
+    (setf (undo-tree-node-previous node) new)
+    new))
+
+
+(defun undo-tree-splice-node (node splice)
+  "Splice NODE into undo tree, below node SPLICE.
+Note that this will overwrite NODE's \"next\" and \"previous\"
+links, so should only be used on a detached NODE, never on nodes
+that are already part of `buffer-undo-tree'."
+  (setf (undo-tree-node-next node) (undo-tree-node-next splice)
+	(undo-tree-node-branch node) (undo-tree-node-branch splice)
+	(undo-tree-node-previous node) splice
+	(undo-tree-node-next splice) (list node)
+	(undo-tree-node-branch splice) 0)
+  (dolist (n (undo-tree-node-next node))
+    (setf (undo-tree-node-previous n) node)))
+
+
+(defun undo-tree-snip-node (node)
+  "Snip NODE out of undo tree."
+  (let* ((parent (undo-tree-node-previous node))
+	 position p)
+    ;; if NODE is only child, replace parent's next links with NODE's
+    (if (= (length (undo-tree-node-next parent)) 0)
+	(setf (undo-tree-node-next parent) (undo-tree-node-next node)
+	      (undo-tree-node-branch parent) (undo-tree-node-branch node))
+      ;; otherwise...
+      (setq position (undo-tree-position node (undo-tree-node-next parent)))
+      (cond
+       ;; if active branch used do go via NODE, set parent's branch to active
+       ;; branch of NODE
+       ((= (undo-tree-node-branch parent) position)
+	(setf (undo-tree-node-branch parent)
+	      (+ position (undo-tree-node-branch node))))
+       ;; if active branch didn't go via NODE, update parent's branch to point
+       ;; to same node as before
+       ((> (undo-tree-node-branch parent) position)
+	(incf (undo-tree-node-branch parent)
+	      (1- (length (undo-tree-node-next node))))))
+      ;; replace NODE in parent's next list with NODE's entire next list
+      (if (= position 0)
+	  (setf (undo-tree-node-next parent)
+		(nconc (undo-tree-node-next node)
+		       (cdr (undo-tree-node-next parent))))
+	(setq p (nthcdr (1- position) (undo-tree-node-next parent)))
+	(setcdr p (nconc (undo-tree-node-next node) (cddr p)))))
+    ;; update previous links of NODE's children
+    (dolist (n (undo-tree-node-next node))
+      (setf (undo-tree-node-previous n) parent))))
+
+
+(defun undo-tree-mapc (--undo-tree-mapc-function-- node)
+  ;; Apply FUNCTION to NODE and to each node below it.
+  (let ((stack (list node))
+	n)
+    (while stack
+      (setq n (pop stack))
+      (funcall --undo-tree-mapc-function-- n)
+      (setq stack (append (undo-tree-node-next n) stack)))))
+
+
+(defmacro undo-tree-num-branches ()
+  "Return number of branches at current undo tree node."
+  '(length (undo-tree-node-next (undo-tree-current buffer-undo-tree))))
+
+
+(defun undo-tree-position (node list)
+  "Find the first occurrence of NODE in LIST.
+Return the index of the matching item, or nil of not found.
+Comparison is done with `eq'."
+  (let ((i 0))
+    (catch 'found
+      (while (progn
+               (when (eq node (car list)) (throw 'found i))
+               (incf i)
+               (setq list (cdr list))))
+      nil)))
+
+
+(defvar *undo-tree-id-counter* 0)
+(make-variable-buffer-local '*undo-tree-id-counter*)
+
+(defmacro undo-tree-generate-id ()
+  ;; Generate a new, unique id (uninterned symbol).
+  ;; The name is made by appending a number to "undo-tree-id".
+  ;; (Copied from CL package `gensym'.)
+  `(let ((num (prog1 *undo-tree-id-counter* (incf *undo-tree-id-counter*))))
+     (make-symbol (format "undo-tree-id%d" num))))
+
+
+(defun undo-tree-decircle (undo-tree)
+  ;; Nullify PREVIOUS links of UNDO-TREE nodes, to make UNDO-TREE data
+  ;; structure non-circular.
+  (undo-tree-mapc
+   (lambda (node)
+     (dolist (n (undo-tree-node-next node))
+       (setf (undo-tree-node-previous n) nil)))
+   (undo-tree-root undo-tree)))
+
+
+(defun undo-tree-recircle (undo-tree)
+  ;; Recreate PREVIOUS links of UNDO-TREE nodes, to restore circular UNDO-TREE
+  ;; data structure.
+  (undo-tree-mapc
+   (lambda (node)
+     (dolist (n (undo-tree-node-next node))
+       (setf (undo-tree-node-previous n) node)))
+   (undo-tree-root undo-tree)))
+
+
+
+
+;;; =====================================================================
+;;;             Undo list and undo changeset utility functions
+
+(defmacro undo-list-marker-elt-p (elt)
+  `(markerp (car-safe ,elt)))
+
+(defmacro undo-list-GCd-marker-elt-p (elt)
+  ;; Return t if ELT is a marker element whose marker has been moved to the
+  ;; object-pool, so may potentially have been garbage-collected.
+  ;; Note: Valid marker undo elements should be uniquely identified as cons
+  ;; cells with a symbol in the car (replacing the marker), and a number in
+  ;; the cdr. However, to guard against future changes to undo element
+  ;; formats, we perform an additional redundant check on the symbol name.
+  `(and (car-safe ,elt)
+	(symbolp (car ,elt))
+	(let ((str (symbol-name (car ,elt))))
+	  (and (> (length str) 12)
+	       (string= (substring str 0 12) "undo-tree-id")))
+	(numberp (cdr-safe ,elt))))
+
+
+(defun undo-tree-move-GC-elts-to-pool (elt)
+  ;; Move elements that can be garbage-collected into `buffer-undo-tree'
+  ;; object pool, substituting a unique id that can be used to retrieve them
+  ;; later. (Only markers require this treatment currently.)
+  (when (undo-list-marker-elt-p elt)
+    (let ((id (undo-tree-generate-id)))
+      (puthash id (car elt) (undo-tree-object-pool buffer-undo-tree))
+      (setcar elt id))))
+
+
+(defun undo-tree-restore-GC-elts-from-pool (elt)
+  ;; Replace object id's in ELT with corresponding objects from
+  ;; `buffer-undo-tree' object pool and return modified ELT, or return nil if
+  ;; any object in ELT has been garbage-collected.
+  (if (undo-list-GCd-marker-elt-p elt)
+      (when (setcar elt (gethash (car elt)
+				 (undo-tree-object-pool buffer-undo-tree)))
+	elt)
+    elt))
+
+
+(defun undo-list-clean-GCd-elts (undo-list)
+  ;; Remove object id's from UNDO-LIST that refer to elements that have been
+  ;; garbage-collected. UNDO-LIST is modified by side-effect.
+  (while (undo-list-GCd-marker-elt-p (car undo-list))
+    (unless (gethash (caar undo-list)
+		     (undo-tree-object-pool buffer-undo-tree))
+      (setq undo-list (cdr undo-list))))
+  (let ((p undo-list))
+    (while (cdr p)
+      (when (and (undo-list-GCd-marker-elt-p (cadr p))
+		 (null (gethash (car (cadr p))
+				(undo-tree-object-pool buffer-undo-tree))))
+	(setcdr p (cddr p)))
+      (setq p (cdr p))))
+  undo-list)
+
+
+(defun undo-list-pop-changeset (&optional discard-pos)
+  ;; Pop changeset from `buffer-undo-list'. If DISCARD-POS is non-nil, discard
+  ;; any position entries from changeset.
+
+  ;; discard undo boundaries and (if DISCARD-POS is non-nil) position entries
+  ;; at head of undo list
+  (while (or (null (car buffer-undo-list))
+	     (and discard-pos (integerp (car buffer-undo-list))))
+    (setq buffer-undo-list (cdr buffer-undo-list)))
+  ;; pop elements up to next undo boundary, discarding position entries if
+  ;; DISCARD-POS is non-nil
+  (if (eq (car buffer-undo-list) 'undo-tree-canary)
+      (push nil buffer-undo-list)
+    (let* ((changeset (list (pop buffer-undo-list)))
+           (p changeset))
+      (while (progn
+	       (undo-tree-move-GC-elts-to-pool (car p))
+	       (while (and discard-pos (integerp (car buffer-undo-list)))
+		 (setq buffer-undo-list (cdr buffer-undo-list)))
+	       (and (car buffer-undo-list)
+		    (not (eq (car buffer-undo-list) 'undo-tree-canary))))
+        (setcdr p (list (pop buffer-undo-list)))
+	(setq p (cdr p)))
+      changeset)))
+
+
+(defun undo-tree-copy-list (undo-list)
+  ;; Return a deep copy of first changeset in `undo-list'. Object id's are
+  ;; replaced by corresponding objects from `buffer-undo-tree' object-pool.
+  (when undo-list
+    (let (copy p)
+      ;; if first element contains an object id, replace it with object from
+      ;; pool, discarding element entirely if it's been GC'd
+      (while (null copy)
+	(setq copy
+	      (undo-tree-restore-GC-elts-from-pool (pop undo-list))))
+      (setq copy (list copy)
+	    p copy)
+      ;; copy remaining elements, replacing object id's with objects from
+      ;; pool, or discarding them entirely if they've been GC'd
+      (while undo-list
+	(when (setcdr p (undo-tree-restore-GC-elts-from-pool
+			 (undo-copy-list-1 (pop undo-list))))
+	  (setcdr p (list (cdr p)))
+	  (setq p (cdr p))))
+      copy)))
+
+
+
+(defun undo-list-transfer-to-tree ()
+  ;; Transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree'.
+
+  ;; `undo-list-transfer-to-tree' should never be called when undo is disabled
+  ;; (i.e. `buffer-undo-tree' is t)
+  (assert (not (eq buffer-undo-tree t)))
+
+  ;; if `buffer-undo-tree' is empty, create initial undo-tree
+  (when (null buffer-undo-tree) (setq buffer-undo-tree (make-undo-tree)))
+  ;; make sure there's a canary at end of `buffer-undo-list'
+  (when (null buffer-undo-list)
+    (setq buffer-undo-list '(nil undo-tree-canary)))
+
+  (unless (or (eq (cadr buffer-undo-list) 'undo-tree-canary)
+	      (eq (car buffer-undo-list) 'undo-tree-canary))
+    ;; create new node from first changeset in `buffer-undo-list', save old
+    ;; `buffer-undo-tree' current node, and make new node the current node
+    (let* ((node (undo-tree-make-node nil (undo-list-pop-changeset)))
+	   (splice (undo-tree-current buffer-undo-tree))
+	   (size (undo-list-byte-size (undo-tree-node-undo node)))
+	   (count 1))
+      (setf (undo-tree-current buffer-undo-tree) node)
+      ;; grow tree fragment backwards using `buffer-undo-list' changesets
+      (while (and buffer-undo-list
+		  (not (eq (cadr buffer-undo-list) 'undo-tree-canary)))
+	(setq node
+	      (undo-tree-grow-backwards node (undo-list-pop-changeset)))
+	(incf size (undo-list-byte-size (undo-tree-node-undo node)))
+	(incf count))
+      ;; if no undo history has been discarded from `buffer-undo-list' since
+      ;; last transfer, splice new tree fragment onto end of old
+      ;; `buffer-undo-tree' current node
+      (if (or (eq (cadr buffer-undo-list) 'undo-tree-canary)
+	      (eq (car buffer-undo-list) 'undo-tree-canary))
+	  (progn
+	    (setf (undo-tree-node-previous node) splice)
+	    (push node (undo-tree-node-next splice))
+	    (setf (undo-tree-node-branch splice) 0)
+	    (incf (undo-tree-size buffer-undo-tree) size)
+	    (incf (undo-tree-count buffer-undo-tree) count))
+	;; if undo history has been discarded, replace entire
+	;; `buffer-undo-tree' with new tree fragment
+	(setq node (undo-tree-grow-backwards node nil))
+	(setf (undo-tree-root buffer-undo-tree) node)
+	(setq buffer-undo-list '(nil undo-tree-canary))
+	(setf (undo-tree-size buffer-undo-tree) size)
+	(setf (undo-tree-count buffer-undo-tree) count)
+	(setq buffer-undo-list '(nil undo-tree-canary))))
+    ;; discard undo history if necessary
+    (undo-tree-discard-history)))
+
+
+(defun undo-list-byte-size (undo-list)
+  ;; Return size (in bytes) of UNDO-LIST
+  (let ((size 0) (p undo-list))
+    (while p
+      (incf size 8)  ; cons cells use up 8 bytes
+      (when (and (consp (car p)) (stringp (caar p)))
+        (incf size (string-bytes (caar p))))
+      (setq p (cdr p)))
+    size))
+
+
+
+(defun undo-list-rebuild-from-tree ()
+  "Rebuild `buffer-undo-list' from information in `buffer-undo-tree'."
+  (unless (eq buffer-undo-list t)
+    (undo-list-transfer-to-tree)
+    (setq buffer-undo-list nil)
+    (when buffer-undo-tree
+      (let ((stack (list (list (undo-tree-root buffer-undo-tree)))))
+	(push (sort (mapcar 'identity (undo-tree-node-next (caar stack)))
+		    (lambda (a b)
+		      (time-less-p (undo-tree-node-timestamp a)
+				   (undo-tree-node-timestamp b))))
+	      stack)
+	;; Traverse tree in depth-and-oldest-first order, but add undo records
+	;; on the way down, and redo records on the way up.
+	(while (or (car stack)
+		   (not (eq (car (nth 1 stack))
+			    (undo-tree-current buffer-undo-tree))))
+	  (if (car stack)
+	      (progn
+		(setq buffer-undo-list
+		      (append (undo-tree-node-undo (caar stack))
+			      buffer-undo-list))
+		(undo-boundary)
+		(push (sort (mapcar 'identity
+				    (undo-tree-node-next (caar stack)))
+			    (lambda (a b)
+			      (time-less-p (undo-tree-node-timestamp a)
+					   (undo-tree-node-timestamp b))))
+		      stack))
+	    (pop stack)
+	    (setq buffer-undo-list
+		  (append (undo-tree-node-redo (caar stack))
+			  buffer-undo-list))
+	    (undo-boundary)
+	    (pop (car stack))))))))
+
+
+
+
+;;; =====================================================================
+;;;                History discarding utility functions
+
+(defun undo-tree-oldest-leaf (node)
+  ;; Return oldest leaf node below NODE.
+  (while (undo-tree-node-next node)
+    (setq node
+          (car (sort (mapcar 'identity (undo-tree-node-next node))
+                     (lambda (a b)
+                       (time-less-p (undo-tree-node-timestamp a)
+                                    (undo-tree-node-timestamp b)))))))
+  node)
+
+
+(defun undo-tree-discard-node (node)
+  ;; Discard NODE from `buffer-undo-tree', and return next in line for
+  ;; discarding.
+
+  ;; don't discard current node
+  (unless (eq node (undo-tree-current buffer-undo-tree))
+
+    ;; discarding root node...
+    (if (eq node (undo-tree-root buffer-undo-tree))
+        (cond
+         ;; should always discard branches before root
+         ((> (length (undo-tree-node-next node)) 1)
+          (error "Trying to discard undo-tree root which still\
+ has multiple branches"))
+         ;; don't discard root if current node is only child
+         ((eq (car (undo-tree-node-next node))
+              (undo-tree-current buffer-undo-tree))
+	  nil)
+	 ;; discard root
+         (t
+	  ;; clear any register referring to root
+	  (let ((r (undo-tree-node-register node)))
+	    (when (and r (eq (get-register r) node))
+	      (set-register r nil)))
+          ;; make child of root into new root
+          (setq node (setf (undo-tree-root buffer-undo-tree)
+                           (car (undo-tree-node-next node))))
+	  ;; update undo-tree size
+	  (decf (undo-tree-size buffer-undo-tree)
+		(+ (undo-list-byte-size (undo-tree-node-undo node))
+		   (undo-list-byte-size (undo-tree-node-redo node))))
+	  (decf (undo-tree-count buffer-undo-tree))
+	  ;; discard new root's undo data and PREVIOUS link
+	  (setf (undo-tree-node-undo node) nil
+		(undo-tree-node-redo node) nil
+		(undo-tree-node-previous node) nil)
+          ;; if new root has branches, or new root is current node, next node
+          ;; to discard is oldest leaf, otherwise it's new root
+          (if (or (> (length (undo-tree-node-next node)) 1)
+                  (eq (car (undo-tree-node-next node))
+                      (undo-tree-current buffer-undo-tree)))
+              (undo-tree-oldest-leaf node)
+            node)))
+
+      ;; discarding leaf node...
+      (let* ((parent (undo-tree-node-previous node))
+             (current (nth (undo-tree-node-branch parent)
+                           (undo-tree-node-next parent))))
+	;; clear any register referring to the discarded node
+	(let ((r (undo-tree-node-register node)))
+	  (when (and r (eq (get-register r) node))
+	    (set-register r nil)))
+	;; update undo-tree size
+	(decf (undo-tree-size buffer-undo-tree)
+	      (+ (undo-list-byte-size (undo-tree-node-undo node))
+		 (undo-list-byte-size (undo-tree-node-redo node))))
+	(decf (undo-tree-count buffer-undo-tree))
+	;; discard leaf
+        (setf (undo-tree-node-next parent)
+                (delq node (undo-tree-node-next parent))
+              (undo-tree-node-branch parent)
+                (undo-tree-position current (undo-tree-node-next parent)))
+        ;; if parent has branches, or parent is current node, next node to
+        ;; discard is oldest leaf, otherwise it's the parent itself
+        (if (or (eq parent (undo-tree-current buffer-undo-tree))
+                (and (undo-tree-node-next parent)
+                     (or (not (eq parent (undo-tree-root buffer-undo-tree)))
+                         (> (length (undo-tree-node-next parent)) 1))))
+            (undo-tree-oldest-leaf parent)
+          parent)))))
+
+
+
+(defun undo-tree-discard-history ()
+  "Discard undo history until we're within memory usage limits
+set by `undo-limit', `undo-strong-limit' and `undo-outer-limit'."
+
+  (when (> (undo-tree-size buffer-undo-tree) undo-limit)
+    ;; if there are no branches off root, first node to discard is root;
+    ;; otherwise it's leaf node at botom of oldest branch
+    (let ((node (if (> (length (undo-tree-node-next
+                                (undo-tree-root buffer-undo-tree))) 1)
+                    (undo-tree-oldest-leaf (undo-tree-root buffer-undo-tree))
+                  (undo-tree-root buffer-undo-tree))))
+
+      ;; discard nodes until memory use is within `undo-strong-limit'
+      (while (and node
+                  (> (undo-tree-size buffer-undo-tree) undo-strong-limit))
+        (setq node (undo-tree-discard-node node)))
+
+      ;; discard nodes until next node to discard would bring memory use
+      ;; within `undo-limit'
+      (while (and node
+		  ;; check first if last discard has brought us within
+		  ;; `undo-limit', in case we can avoid more expensive
+		  ;; `undo-strong-limit' calculation
+		  ;; Note: this assumes undo-strong-limit > undo-limit;
+		  ;;       if not, effectively undo-strong-limit = undo-limit
+		  (> (undo-tree-size buffer-undo-tree) undo-limit)
+                  (> (- (undo-tree-size buffer-undo-tree)
+			;; if next node to discard is root, the memory we
+			;; free-up comes from discarding changesets from its
+			;; only child...
+			(if (eq node (undo-tree-root buffer-undo-tree))
+			    (+ (undo-list-byte-size
+				(undo-tree-node-undo
+				 (car (undo-tree-node-next node))))
+			       (undo-list-byte-size
+				(undo-tree-node-redo
+				 (car (undo-tree-node-next node)))))
+			  ;; ...otherwise, it comes from discarding changesets
+			  ;; from along with the node itself
+			  (+ (undo-list-byte-size (undo-tree-node-undo node))
+			     (undo-list-byte-size (undo-tree-node-redo node)))
+			  ))
+                     undo-limit))
+        (setq node (undo-tree-discard-node node)))
+
+      ;; if we're still over the `undo-outer-limit', discard entire history
+      (when (> (undo-tree-size buffer-undo-tree) undo-outer-limit)
+        ;; query first if `undo-ask-before-discard' is set
+        (if undo-ask-before-discard
+            (when (yes-or-no-p
+                   (format
+                    "Buffer `%s' undo info is %d bytes long;  discard it? "
+                    (buffer-name) (undo-tree-size buffer-undo-tree)))
+              (setq buffer-undo-tree nil))
+          ;; otherwise, discard and display warning
+          (display-warning
+           '(undo discard-info)
+           (concat
+            (format "Buffer `%s' undo info was %d bytes long.\n"
+                    (buffer-name) (undo-tree-size buffer-undo-tree))
+            "The undo info was discarded because it exceeded\
+ `undo-outer-limit'.
+
+This is normal if you executed a command that made a huge change
+to the buffer. In that case, to prevent similar problems in the
+future, set `undo-outer-limit' to a value that is large enough to
+cover the maximum size of normal changes you expect a single
+command to make, but not so large that it might exceed the
+maximum memory allotted to Emacs.
+
+If you did not execute any such command, the situation is
+probably due to a bug and you should report it.
+
+You can disable the popping up of this buffer by adding the entry
+\(undo discard-info) to the user option `warning-suppress-types',
+which is defined in the `warnings' library.\n")
+           :warning)
+          (setq buffer-undo-tree nil)))
+      )))
+
+
+
+
+;;; =====================================================================
+;;;                   Visualizer utility functions
+
+(defun undo-tree-compute-widths (node)
+  "Recursively compute widths for nodes below NODE."
+  (let ((stack (list node))
+        res)
+    (while stack
+      ;; try to compute widths for node at top of stack
+      (if (undo-tree-node-p
+           (setq res (undo-tree-node-compute-widths (car stack))))
+          ;; if computation fails, it returns a node whose widths still need
+          ;; computing, which we push onto the stack
+          (push res stack)
+        ;; otherwise, store widths and remove it from stack
+        (setf (undo-tree-node-lwidth (car stack)) (aref res 0)
+              (undo-tree-node-cwidth (car stack)) (aref res 1)
+              (undo-tree-node-rwidth (car stack)) (aref res 2))
+        (pop stack)))))
+
+
+(defun undo-tree-node-compute-widths (node)
+  ;; Compute NODE's left-, centre-, and right-subtree widths. Returns widths
+  ;; (in a vector) if successful. Otherwise, returns a node whose widths need
+  ;; calculating before NODE's can be calculated.
+  (let ((num-children (length (undo-tree-node-next node)))
+        (lwidth 0) (cwidth 0) (rwidth 0) p)
+    (catch 'need-widths
+      (cond
+       ;; leaf nodes have 0 width
+       ((= 0 num-children)
+        (setf cwidth 1
+              (undo-tree-node-lwidth node) 0
+              (undo-tree-node-cwidth node) 1
+              (undo-tree-node-rwidth node) 0))
+
+       ;; odd number of children
+       ((= (mod num-children 2) 1)
+        (setq p (undo-tree-node-next node))
+        ;; compute left-width
+        (dotimes (i (/ num-children 2))
+          (if (undo-tree-node-lwidth (car p))
+              (incf lwidth (+ (undo-tree-node-lwidth (car p))
+                              (undo-tree-node-cwidth (car p))
+                              (undo-tree-node-rwidth (car p))))
+            ;; if child's widths haven't been computed, return that child
+            (throw 'need-widths (car p)))
+          (setq p (cdr p)))
+        (if (undo-tree-node-lwidth (car p))
+            (incf lwidth (undo-tree-node-lwidth (car p)))
+          (throw 'need-widths (car p)))
+        ;; centre-width is inherited from middle child
+        (setf cwidth (undo-tree-node-cwidth (car p)))
+        ;; compute right-width
+        (incf rwidth (undo-tree-node-rwidth (car p)))
+        (setq p (cdr p))
+        (dotimes (i (/ num-children 2))
+          (if (undo-tree-node-lwidth (car p))
+              (incf rwidth (+ (undo-tree-node-lwidth (car p))
+                              (undo-tree-node-cwidth (car p))
+                              (undo-tree-node-rwidth (car p))))
+            (throw 'need-widths (car p)))
+          (setq p (cdr p))))
+
+       ;; even number of children
+       (t
+        (setq p (undo-tree-node-next node))
+        ;; compute left-width
+        (dotimes (i (/ num-children 2))
+          (if (undo-tree-node-lwidth (car p))
+              (incf lwidth (+ (undo-tree-node-lwidth (car p))
+                              (undo-tree-node-cwidth (car p))
+                              (undo-tree-node-rwidth (car p))))
+            (throw 'need-widths (car p)))
+          (setq p (cdr p)))
+        ;; centre-width is 0 when number of children is even
+        (setq cwidth 0)
+        ;; compute right-width
+        (dotimes (i (/ num-children 2))
+          (if (undo-tree-node-lwidth (car p))
+              (incf rwidth (+ (undo-tree-node-lwidth (car p))
+                              (undo-tree-node-cwidth (car p))
+                              (undo-tree-node-rwidth (car p))))
+            (throw 'need-widths (car p)))
+          (setq p (cdr p)))))
+
+      ;; return left-, centre- and right-widths
+      (vector lwidth cwidth rwidth))))
+
+
+(defun undo-tree-clear-visualizer-data (tree)
+  ;; Clear visualizer data below NODE.
+  (undo-tree-mapc
+   (lambda (n) (undo-tree-node-clear-visualizer-data n))
+   (undo-tree-root tree)))
+
+
+(defun undo-tree-node-unmodified-p (node &optional mtime)
+  ;; Return non-nil if NODE corresponds to a buffer state that once upon a
+  ;; time was unmodified. If a file modification time MTIME is specified,
+  ;; return non-nil if the corresponding buffer state really is unmodified.
+  (let (changeset ntime)
+    (setq changeset
+	  (or (undo-tree-node-redo node)
+	      (and (setq changeset (car (undo-tree-node-next node)))
+		   (undo-tree-node-undo changeset)))
+	  ntime
+	  (catch 'found
+	    (dolist (elt changeset)
+	      (when (and (consp elt) (eq (car elt) t) (consp (cdr elt))
+			 (throw 'found (cdr elt)))))))
+    (and ntime
+	 (or (null mtime)
+	     ;; high-precision timestamps
+	     (if (listp (cdr ntime))
+		 (equal ntime mtime)
+	       ;; old-style timestamps
+	       (and (= (car ntime) (car mtime))
+		    (= (cdr ntime) (cadr mtime))))))))
+
+
+
+
+;;; =====================================================================
+;;;                  Undo-in-region utility functions
+
+;; `undo-elt-in-region' uses this as a dynamically-scoped variable
+(defvar undo-adjusted-markers nil)
+
+
+(defun undo-tree-pull-undo-in-region-branch (start end)
+  ;; Pull out entries from undo changesets to create a new undo-in-region
+  ;; branch, which undoes changeset entries lying between START and END first,
+  ;; followed by remaining entries from the changesets, before rejoining the
+  ;; existing undo tree history. Repeated calls will, if appropriate, extend
+  ;; the current undo-in-region branch rather than creating a new one.
+
+  ;; if we're just reverting the last redo-in-region, we don't need to
+  ;; manipulate the undo tree at all
+  (if (undo-tree-reverting-redo-in-region-p start end)
+      t  ; return t to indicate success
+
+    ;; We build the `region-changeset' and `delta-list' lists forwards, using
+    ;; pointers `r' and `d' to the penultimate element of the list. So that we
+    ;; don't have to treat the first element differently, we prepend a dummy
+    ;; leading nil to the lists, and have the pointers point to that
+    ;; initially.
+    ;; Note: using '(nil) instead of (list nil) in the `let*' results in
+    ;;       bizarre errors when the code is byte-compiled, where parts of the
+    ;;       lists appear to survive across different calls to this function.
+    ;;       An obscure byte-compiler bug, perhaps?
+    (let* ((region-changeset (list nil))
+	   (r region-changeset)
+	   (delta-list (list nil))
+	   (d delta-list)
+	   (node (undo-tree-current buffer-undo-tree))
+	   (repeated-undo-in-region
+	    (undo-tree-repeated-undo-in-region-p start end))
+	   undo-adjusted-markers  ; `undo-elt-in-region' expects this
+	   fragment splice original-fragment original-splice original-current
+	   got-visible-elt undo-list elt)
+
+      ;; --- initialisation ---
+      (cond
+       ;; if this is a repeated undo in the same region, start pulling changes
+       ;; from NODE at which undo-in-region branch iss attached, and detatch
+       ;; the branch, using it as initial FRAGMENT of branch being constructed
+       (repeated-undo-in-region
+	(setq original-current node
+	      fragment (car (undo-tree-node-next node))
+	      splice node)
+	;; undo up to node at which undo-in-region branch is attached
+	;; (recognizable as first node with more than one branch)
+	(let ((mark-active nil))
+	  (while (= (length (undo-tree-node-next node)) 1)
+	    (undo-tree-undo-1)
+	    (setq fragment node
+		  node (undo-tree-current buffer-undo-tree))))
+	(when (eq splice node) (setq splice nil))
+	;; detatch undo-in-region branch
+	(setf (undo-tree-node-next node)
+	      (delq fragment (undo-tree-node-next node))
+	      (undo-tree-node-previous fragment) nil
+	      original-fragment fragment
+	      original-splice node))
+
+       ;; if this is a new undo-in-region, initial FRAGMENT is a copy of all
+       ;; nodes below the current one in the active branch
+       ((undo-tree-node-next node)
+	(setq fragment (undo-tree-make-node nil nil)
+	      splice fragment)
+	(while (setq node (nth (undo-tree-node-branch node)
+			       (undo-tree-node-next node)))
+	  (push (undo-tree-make-node
+		 splice
+		 (undo-copy-list (undo-tree-node-undo node))
+		 (undo-copy-list (undo-tree-node-redo node)))
+		(undo-tree-node-next splice))
+	  (setq splice (car (undo-tree-node-next splice))))
+	(setq fragment (car (undo-tree-node-next fragment))
+	      splice nil
+	      node (undo-tree-current buffer-undo-tree))))
+
+
+      ;; --- pull undo-in-region elements into branch ---
+      ;; work backwards up tree, pulling out undo elements within region until
+      ;; we've got one that undoes a visible change (insertion or deletion)
+      (catch 'abort
+	(while (and (not got-visible-elt) node (undo-tree-node-undo node))
+	  ;; we cons a dummy nil element on the front of the changeset so that
+	  ;; we can conveniently remove the first (real) element from the
+	  ;; changeset if we need to; the leading nil is removed once we're
+	  ;; done with this changeset
+	  (setq undo-list (cons nil (undo-copy-list (undo-tree-node-undo node)))
+		elt (cadr undo-list))
+	  (if fragment
+	      (progn
+		(setq fragment (undo-tree-grow-backwards fragment undo-list))
+		(unless splice (setq splice fragment)))
+	    (setq fragment (undo-tree-make-node nil undo-list))
+	    (setq splice fragment))
+
+	  (while elt
+	    (cond
+	     ;; keep elements within region
+	     ((undo-elt-in-region elt start end)
+	      ;; set flag if kept element is visible (insertion or deletion)
+	      (when (and (consp elt)
+			 (or (stringp (car elt)) (integerp (car elt))))
+		(setq got-visible-elt t))
+	      ;; adjust buffer positions in elements previously undone before
+	      ;; kept element, as kept element will now be undone first
+	      (undo-tree-adjust-elements-to-elt splice elt)
+	      ;; move kept element to undo-in-region changeset, adjusting its
+	      ;; buffer position as it will now be undone first
+	      (setcdr r (list (undo-tree-apply-deltas elt (cdr delta-list))))
+	      (setq r (cdr r))
+	      (setcdr undo-list (cddr undo-list)))
+
+	     ;; discard "was unmodified" elements
+	     ;; FIXME: deal properly with these
+	     ((and (consp elt) (eq (car elt) t))
+	      (setcdr undo-list (cddr undo-list)))
+
+	     ;; if element crosses region, we can't pull any more elements
+	     ((undo-elt-crosses-region elt start end)
+	      ;; if we've found a visible element, it must be earlier in
+	      ;; current node's changeset; stop pulling elements (null
+	      ;; `undo-list' and non-nil `got-visible-elt' cause loop to exit)
+	      (if got-visible-elt
+		  (setq undo-list nil)
+		;; if we haven't found a visible element yet, pulling
+		;; undo-in-region branch has failed
+		(setq region-changeset nil)
+		(throw 'abort t)))
+
+	     ;; if rejecting element, add its delta (if any) to the list
+	     (t
+	      (let ((delta (undo-delta elt)))
+		(when (/= 0 (cdr delta))
+		  (setcdr d (list delta))
+		  (setq d (cdr d))))
+	      (setq undo-list (cdr undo-list))))
+
+	    ;; process next element of current changeset
+	    (setq elt (cadr undo-list)))
+
+	  ;; if there are remaining elements in changeset, remove dummy nil
+	  ;; from front
+	  (if (cadr (undo-tree-node-undo fragment))
+	      (pop (undo-tree-node-undo fragment))
+	    ;; otherwise, if we've kept all elements in changeset, discard
+	    ;; empty changeset
+	    (when (eq splice fragment) (setq splice nil))
+	    (setq fragment (car (undo-tree-node-next fragment))))
+	  ;; process changeset from next node up the tree
+	  (setq node (undo-tree-node-previous node))))
+
+      ;; pop dummy nil from front of `region-changeset'
+      (setq region-changeset (cdr region-changeset))
+
+
+      ;; --- integrate branch into tree ---
+      ;; if no undo-in-region elements were found, restore undo tree
+      (if (null region-changeset)
+	  (when original-current
+	    (push original-fragment (undo-tree-node-next original-splice))
+	    (setf (undo-tree-node-branch original-splice) 0
+		  (undo-tree-node-previous original-fragment) original-splice)
+	    (let ((mark-active nil))
+	      (while (not (eq (undo-tree-current buffer-undo-tree)
+			      original-current))
+		(undo-tree-redo-1)))
+	    nil)  ; return nil to indicate failure
+
+	;; otherwise...
+	;; need to undo up to node where new branch will be attached, to
+	;; ensure redo entries are populated, and then redo back to where we
+	;; started
+	(let ((mark-active nil)
+	      (current (undo-tree-current buffer-undo-tree)))
+	  (while (not (eq (undo-tree-current buffer-undo-tree) node))
+	    (undo-tree-undo-1))
+	  (while (not (eq (undo-tree-current buffer-undo-tree) current))
+	    (undo-tree-redo-1)))
+
+	(cond
+	 ;; if there's no remaining fragment, just create undo-in-region node
+	 ;; and attach it to parent of last node from which elements were
+	 ;; pulled
+	 ((null fragment)
+	  (setq fragment (undo-tree-make-node node region-changeset))
+	  (push fragment (undo-tree-node-next node))
+	  (setf (undo-tree-node-branch node) 0)
+	  ;; set current node to undo-in-region node
+	  (setf (undo-tree-current buffer-undo-tree) fragment))
+
+	 ;; if no splice point has been set, add undo-in-region node to top of
+	 ;; fragment and attach it to parent of last node from which elements
+	 ;; were pulled
+	 ((null splice)
+	  (setq fragment (undo-tree-grow-backwards fragment region-changeset))
+	  (push fragment (undo-tree-node-next node))
+	  (setf (undo-tree-node-branch node) 0
+		(undo-tree-node-previous fragment) node)
+	  ;; set current node to undo-in-region node
+	  (setf (undo-tree-current buffer-undo-tree) fragment))
+
+	 ;; if fragment contains nodes, attach fragment to parent of last node
+	 ;; from which elements were pulled, and splice in undo-in-region node
+	 (t
+	  (setf (undo-tree-node-previous fragment) node)
+	  (push fragment (undo-tree-node-next node))
+	  (setf (undo-tree-node-branch node) 0)
+	  ;; if this is a repeated undo-in-region, then we've left the current
+	  ;; node at the original splice-point; we need to set the current
+	  ;; node to the equivalent node on the undo-in-region branch and redo
+	  ;; back to where we started
+	  (when repeated-undo-in-region
+	    (setf (undo-tree-current buffer-undo-tree)
+		  (undo-tree-node-previous original-fragment))
+	    (let ((mark-active nil))
+	      (while (not (eq (undo-tree-current buffer-undo-tree) splice))
+		(undo-tree-redo-1 nil 'preserve-undo))))
+	  ;; splice new undo-in-region node into fragment
+	  (setq node (undo-tree-make-node nil region-changeset))
+	  (undo-tree-splice-node node splice)
+	  ;; set current node to undo-in-region node
+	  (setf (undo-tree-current buffer-undo-tree) node)))
+
+	;; update undo-tree size
+	(setq node (undo-tree-node-previous fragment))
+	(while (progn
+		 (and (setq node (car (undo-tree-node-next node)))
+		      (not (eq node original-fragment))
+		      (incf (undo-tree-count buffer-undo-tree))
+		      (incf (undo-tree-size buffer-undo-tree)
+			    (+ (undo-list-byte-size (undo-tree-node-undo node))
+			       (undo-list-byte-size (undo-tree-node-redo node)))))))
+	t)  ; indicate undo-in-region branch was successfully pulled
+      )))
+
+
+
+(defun undo-tree-pull-redo-in-region-branch (start end)
+  ;; Pull out entries from redo changesets to create a new redo-in-region
+  ;; branch, which redoes changeset entries lying between START and END first,
+  ;; followed by remaining entries from the changesets. Repeated calls will,
+  ;; if appropriate, extend the current redo-in-region branch rather than
+  ;; creating a new one.
+
+  ;; if we're just reverting the last undo-in-region, we don't need to
+  ;; manipulate the undo tree at all
+  (if (undo-tree-reverting-undo-in-region-p start end)
+      t  ; return t to indicate success
+
+    ;; We build the `region-changeset' and `delta-list' lists forwards, using
+    ;; pointers `r' and `d' to the penultimate element of the list. So that we
+    ;; don't have to treat the first element differently, we prepend a dummy
+    ;; leading nil to the lists, and have the pointers point to that
+    ;; initially.
+    ;; Note: using '(nil) instead of (list nil) in the `let*' causes bizarre
+    ;;       errors when the code is byte-compiled, where parts of the lists
+    ;;       appear to survive across different calls to this function.  An
+    ;;       obscure byte-compiler bug, perhaps?
+    (let* ((region-changeset (list nil))
+	   (r region-changeset)
+	   (delta-list (list nil))
+	   (d delta-list)
+	   (node (undo-tree-current buffer-undo-tree))
+	   (repeated-redo-in-region
+	    (undo-tree-repeated-redo-in-region-p start end))
+	   undo-adjusted-markers  ; `undo-elt-in-region' expects this
+	   fragment splice got-visible-elt redo-list elt)
+
+      ;; --- inisitalisation ---
+      (cond
+       ;; if this is a repeated redo-in-region, detach fragment below current
+       ;; node
+       (repeated-redo-in-region
+	(when (setq fragment (car (undo-tree-node-next node)))
+	  (setf (undo-tree-node-previous fragment) nil
+		(undo-tree-node-next node)
+		(delq fragment (undo-tree-node-next node)))))
+       ;; if this is a new redo-in-region, initial fragment is a copy of all
+       ;; nodes below the current one in the active branch
+       ((undo-tree-node-next node)
+	(setq fragment (undo-tree-make-node nil nil)
+	      splice fragment)
+	(while (setq node (nth (undo-tree-node-branch node)
+			       (undo-tree-node-next node)))
+	  (push (undo-tree-make-node
+		 splice nil
+		 (undo-copy-list (undo-tree-node-redo node)))
+		(undo-tree-node-next splice))
+	  (setq splice (car (undo-tree-node-next splice))))
+	(setq fragment (car (undo-tree-node-next fragment)))))
+
+
+      ;; --- pull redo-in-region elements into branch ---
+      ;; work down fragment, pulling out redo elements within region until
+      ;; we've got one that redoes a visible change (insertion or deletion)
+      (setq node fragment)
+      (catch 'abort
+	(while (and (not got-visible-elt) node (undo-tree-node-redo node))
+	  ;; we cons a dummy nil element on the front of the changeset so that
+	  ;; we can conveniently remove the first (real) element from the
+	  ;; changeset if we need to; the leading nil is removed once we're
+	  ;; done with this changeset
+	  (setq redo-list (push nil (undo-tree-node-redo node))
+		elt (cadr redo-list))
+	  (while elt
+	    (cond
+	     ;; keep elements within region
+	     ((undo-elt-in-region elt start end)
+	      ;; set flag if kept element is visible (insertion or deletion)
+	      (when (and (consp elt)
+			 (or (stringp (car elt)) (integerp (car elt))))
+		(setq got-visible-elt t))
+	      ;; adjust buffer positions in elements previously redone before
+	      ;; kept element, as kept element will now be redone first
+	      (undo-tree-adjust-elements-to-elt fragment elt t)
+	      ;; move kept element to redo-in-region changeset, adjusting its
+	      ;; buffer position as it will now be redone first
+	      (setcdr r (list (undo-tree-apply-deltas elt (cdr delta-list) -1)))
+	      (setq r (cdr r))
+	      (setcdr redo-list (cddr redo-list)))
+
+	     ;; discard "was unmodified" elements
+	     ;; FIXME: deal properly with these
+	     ((and (consp elt) (eq (car elt) t))
+	      (setcdr redo-list (cddr redo-list)))
+
+	     ;; if element crosses region, we can't pull any more elements
+	     ((undo-elt-crosses-region elt start end)
+	      ;; if we've found a visible element, it must be earlier in
+	      ;; current node's changeset; stop pulling elements (null
+	      ;; `redo-list' and non-nil `got-visible-elt' cause loop to exit)
+	      (if got-visible-elt
+		  (setq redo-list nil)
+		;; if we haven't found a visible element yet, pulling
+		;; redo-in-region branch has failed
+		(setq region-changeset nil)
+		(throw 'abort t)))
+
+	     ;; if rejecting element, add its delta (if any) to the list
+	     (t
+	      (let ((delta (undo-delta elt)))
+		(when (/= 0 (cdr delta))
+		  (setcdr d (list delta))
+		  (setq d (cdr d))))
+	      (setq redo-list (cdr redo-list))))
+
+	    ;; process next element of current changeset
+	    (setq elt (cadr redo-list)))
+
+	  ;; if there are remaining elements in changeset, remove dummy nil
+	  ;; from front
+	  (if (cadr (undo-tree-node-redo node))
+	      (pop (undo-tree-node-undo node))
+	    ;; otherwise, if we've kept all elements in changeset, discard
+	    ;; empty changeset
+	    (if (eq fragment node)
+		(setq fragment (car (undo-tree-node-next fragment)))
+	      (undo-tree-snip-node node)))
+	  ;; process changeset from next node in fragment
+	  (setq node (car (undo-tree-node-next node)))))
+
+      ;; pop dummy nil from front of `region-changeset'
+      (setq region-changeset (cdr region-changeset))
+
+
+      ;; --- integrate branch into tree ---
+      (setq node (undo-tree-current buffer-undo-tree))
+      ;; if no redo-in-region elements were found, restore undo tree
+      (if (null (car region-changeset))
+	  (when (and repeated-redo-in-region fragment)
+	    (push fragment (undo-tree-node-next node))
+	    (setf (undo-tree-node-branch node) 0
+		  (undo-tree-node-previous fragment) node)
+	    nil)  ; return nil to indicate failure
+
+	;; otherwise, add redo-in-region node to top of fragment, and attach
+	;; it below current node
+	(setq fragment
+	      (if fragment
+		  (undo-tree-grow-backwards fragment nil region-changeset)
+		(undo-tree-make-node nil nil region-changeset)))
+	(push fragment (undo-tree-node-next node))
+	(setf (undo-tree-node-branch node) 0
+	      (undo-tree-node-previous fragment) node)
+	;; update undo-tree size
+	(unless repeated-redo-in-region
+	  (setq node fragment)
+	  (while (and (setq node (car (undo-tree-node-next node)))
+		      (incf (undo-tree-count buffer-undo-tree))
+		      (incf (undo-tree-size buffer-undo-tree)
+			    (undo-list-byte-size
+			     (undo-tree-node-redo node))))))
+	(incf (undo-tree-size buffer-undo-tree)
+	      (undo-list-byte-size (undo-tree-node-redo fragment)))
+	t)  ; indicate redo-in-region branch was successfully pulled
+      )))
+
+
+
+(defun undo-tree-adjust-elements-to-elt (node undo-elt &optional below)
+  "Adjust buffer positions of undo elements, starting at NODE's
+and going up the tree (or down the active branch if BELOW is
+non-nil) and through the nodes' undo elements until we reach
+UNDO-ELT.  UNDO-ELT must appear somewhere in the undo changeset
+of either NODE itself or some node above it in the tree."
+  (let ((delta (list (undo-delta undo-elt)))
+	(undo-list (undo-tree-node-undo node)))
+    ;; adjust elements until we reach UNDO-ELT
+    (while (and (car undo-list)
+		(not (eq (car undo-list) undo-elt)))
+      (setcar undo-list
+	      (undo-tree-apply-deltas (car undo-list) delta -1))
+      ;; move to next undo element in list, or to next node if we've run out
+      ;; of elements
+      (unless (car (setq undo-list (cdr undo-list)))
+	(if below
+	    (setq node (nth (undo-tree-node-branch node)
+			    (undo-tree-node-next node)))
+	  (setq node (undo-tree-node-previous node)))
+	(setq undo-list (undo-tree-node-undo node))))))
+
+
+
+(defun undo-tree-apply-deltas (undo-elt deltas &optional sgn)
+  ;; Apply DELTAS in order to UNDO-ELT, multiplying deltas by SGN
+  ;; (only useful value for SGN is -1).
+  (let (position offset)
+    (dolist (delta deltas)
+      (setq position (car delta)
+	    offset (* (cdr delta) (or sgn 1)))
+      (cond
+       ;; POSITION
+       ((integerp undo-elt)
+	(when (>= undo-elt position)
+	  (setq undo-elt (- undo-elt offset))))
+       ;; nil (or any other atom)
+       ((atom undo-elt))
+       ;; (TEXT . POSITION)
+       ((stringp (car undo-elt))
+	(let ((text-pos (abs (cdr undo-elt)))
+	      (point-at-end (< (cdr undo-elt) 0)))
+	  (if (>= text-pos position)
+	      (setcdr undo-elt (* (if point-at-end -1 1)
+				  (- text-pos offset))))))
+       ;; (BEGIN . END)
+       ((integerp (car undo-elt))
+	(when (>= (car undo-elt) position)
+	  (setcar undo-elt (- (car undo-elt) offset))
+	  (setcdr undo-elt (- (cdr undo-elt) offset))))
+       ;; (nil PROPERTY VALUE BEG . END)
+       ((null (car undo-elt))
+	(let ((tail (nthcdr 3 undo-elt)))
+	  (when (>= (car tail) position)
+	    (setcar tail (- (car tail) offset))
+	    (setcdr tail (- (cdr tail) offset)))))
+       ))
+    undo-elt))
+
+
+
+(defun undo-tree-repeated-undo-in-region-p (start end)
+  ;; Return non-nil if undo-in-region between START and END is a repeated
+  ;; undo-in-region
+  (let ((node (undo-tree-current buffer-undo-tree)))
+    (and (setq node
+	       (nth (undo-tree-node-branch node) (undo-tree-node-next node)))
+	 (eq (undo-tree-node-undo-beginning node) start)
+	 (eq (undo-tree-node-undo-end node) end))))
+
+
+(defun undo-tree-repeated-redo-in-region-p (start end)
+  ;; Return non-nil if undo-in-region between START and END is a repeated
+  ;; undo-in-region
+  (let ((node (undo-tree-current buffer-undo-tree)))
+    (and (eq (undo-tree-node-redo-beginning node) start)
+	 (eq (undo-tree-node-redo-end node) end))))
+
+
+;; Return non-nil if undo-in-region between START and END is simply
+;; reverting the last redo-in-region
+(defalias 'undo-tree-reverting-undo-in-region-p
+  'undo-tree-repeated-undo-in-region-p)
+
+
+;; Return non-nil if redo-in-region between START and END is simply
+;; reverting the last undo-in-region
+(defalias 'undo-tree-reverting-redo-in-region-p
+  'undo-tree-repeated-redo-in-region-p)
+
+
+
+
+;;; =====================================================================
+;;;                        Undo-tree commands
+
+;;;###autoload
+(define-minor-mode undo-tree-mode
+  "Toggle undo-tree mode.
+With no argument, this command toggles the mode.
+A positive prefix argument turns the mode on.
+A negative prefix argument turns it off.
+
+Undo-tree-mode replaces Emacs' standard undo feature with a more
+powerful yet easier to use version, that treats the undo history
+as what it is: a tree.
+
+The following keys are available in `undo-tree-mode':
+
+  \\{undo-tree-map}
+
+Within the undo-tree visualizer, the following keys are available:
+
+  \\{undo-tree-visualizer-mode-map}"
+
+  nil                       ; init value
+  undo-tree-mode-lighter    ; lighter
+  undo-tree-map             ; keymap
+
+  ;; if disabling `undo-tree-mode', rebuild `buffer-undo-list' from tree so
+  ;; Emacs undo can work
+  (when (not undo-tree-mode)
+    (undo-list-rebuild-from-tree)
+    (setq buffer-undo-tree nil)))
+
+
+(defun turn-on-undo-tree-mode (&optional print-message)
+  "Enable `undo-tree-mode' in the current buffer, when appropriate.
+Some major modes implement their own undo system, which should
+not normally be overridden by `undo-tree-mode'. This command does
+not enable `undo-tree-mode' in such buffers. If you want to force
+`undo-tree-mode' to be enabled regardless, use (undo-tree-mode 1)
+instead.
+
+The heuristic used to detect major modes in which
+`undo-tree-mode' should not be used is to check whether either
+the `undo' command has been remapped, or the default undo
+keybindings (C-/ and C-_) have been overridden somewhere other
+than in the global map. In addition, `undo-tree-mode' will not be
+enabled if the buffer's `major-mode' appears in
+`undo-tree-incompatible-major-modes'."
+  (interactive "p")
+  (if (or (key-binding [remap undo])
+	  (undo-tree-overridden-undo-bindings-p)
+	  (memq major-mode undo-tree-incompatible-major-modes))
+      (when print-message
+	(message "Buffer does not support undo-tree-mode;\
+ undo-tree-mode NOT enabled"))
+    (undo-tree-mode 1)))
+
+
+(defun undo-tree-overridden-undo-bindings-p ()
+  "Returns t if default undo bindings are overridden, nil otherwise.
+Checks if either of the default undo key bindings (\"C-/\" or
+\"C-_\") are overridden in the current buffer by any keymap other
+than the global one. (So global redefinitions of the default undo
+key bindings do not count.)"
+  (let ((binding1 (lookup-key (current-global-map) [?\C-/]))
+	(binding2 (lookup-key (current-global-map) [?\C-_])))
+    (global-set-key [?\C-/] 'undo)
+    (global-set-key [?\C-_] 'undo)
+    (unwind-protect
+	(or (and (key-binding [?\C-/])
+		 (not (eq (key-binding [?\C-/]) 'undo)))
+	    (and (key-binding [?\C-_])
+		 (not (eq (key-binding [?\C-_]) 'undo))))
+      (global-set-key [?\C-/] binding1)
+      (global-set-key [?\C-_] binding2))))
+
+
+;;;###autoload
+(define-globalized-minor-mode global-undo-tree-mode
+  undo-tree-mode turn-on-undo-tree-mode)
+
+
+
+(defun undo-tree-undo (&optional arg)
+  "Undo changes.
+Repeat this command to undo more changes.
+A numeric ARG serves as a repeat count.
+
+In Transient Mark mode when the mark is active, only undo changes
+within the current region. Similarly, when not in Transient Mark
+mode, just \\[universal-argument] as an argument limits undo to
+changes within the current region."
+  (interactive "*P")
+  ;; throw error if undo is disabled in buffer
+  (when (eq buffer-undo-list t)
+    (user-error "No undo information in this buffer"))
+  (undo-tree-undo-1 arg)
+  ;; inform user if at branch point
+  (when (> (undo-tree-num-branches) 1) (message "Undo branch point!")))
+
+
+(defun undo-tree-undo-1 (&optional arg preserve-redo preserve-timestamps)
+  ;; Internal undo function. An active mark in `transient-mark-mode', or
+  ;; non-nil ARG otherwise, enables undo-in-region. Non-nil PRESERVE-REDO
+  ;; causes the existing redo record to be preserved, rather than replacing it
+  ;; with the new one generated by undoing. Non-nil PRESERVE-TIMESTAMPS
+  ;; disables updating of timestamps in visited undo-tree nodes. (This latter
+  ;; should *only* be used when temporarily visiting another undo state and
+  ;; immediately returning to the original state afterwards. Otherwise, it
+  ;; could cause history-discarding errors.)
+  (let ((undo-in-progress t)
+	(undo-in-region (and undo-tree-enable-undo-in-region
+			     (or (region-active-p)
+				 (and arg (not (numberp arg))))))
+	pos current)
+    ;; transfer entries accumulated in `buffer-undo-list' to
+    ;; `buffer-undo-tree'
+    (undo-list-transfer-to-tree)
+
+    (dotimes (i (or (and (numberp arg) (prefix-numeric-value arg)) 1))
+      ;; check if at top of undo tree
+      (unless (undo-tree-node-previous (undo-tree-current buffer-undo-tree))
+	(user-error "No further undo information"))
+
+      ;; if region is active, or a non-numeric prefix argument was supplied,
+      ;; try to pull out a new branch of changes affecting the region
+      (when (and undo-in-region
+		 (not (undo-tree-pull-undo-in-region-branch
+		       (region-beginning) (region-end))))
+	(user-error "No further undo information for region"))
+
+      ;; remove any GC'd elements from node's undo list
+      (setq current (undo-tree-current buffer-undo-tree))
+      (decf (undo-tree-size buffer-undo-tree)
+	    (undo-list-byte-size (undo-tree-node-undo current)))
+      (setf (undo-tree-node-undo current)
+	    (undo-list-clean-GCd-elts (undo-tree-node-undo current)))
+      (incf (undo-tree-size buffer-undo-tree)
+	    (undo-list-byte-size (undo-tree-node-undo current)))
+      ;; undo one record from undo tree
+      (when undo-in-region
+	(setq pos (set-marker (make-marker) (point)))
+	(set-marker-insertion-type pos t))
+      (primitive-undo 1 (undo-tree-copy-list (undo-tree-node-undo current)))
+      (undo-boundary)
+
+      ;; if preserving old redo record, discard new redo entries that
+      ;; `primitive-undo' has added to `buffer-undo-list', and remove any GC'd
+      ;; elements from node's redo list
+      (if preserve-redo
+	  (progn
+	    (undo-list-pop-changeset)
+	    (decf (undo-tree-size buffer-undo-tree)
+		  (undo-list-byte-size (undo-tree-node-redo current)))
+	    (setf (undo-tree-node-redo current)
+		  (undo-list-clean-GCd-elts (undo-tree-node-redo current)))
+	    (incf (undo-tree-size buffer-undo-tree)
+		  (undo-list-byte-size (undo-tree-node-redo current))))
+	;; otherwise, record redo entries that `primitive-undo' has added to
+	;; `buffer-undo-list' in current node's redo record, replacing
+	;; existing entry if one already exists
+	(decf (undo-tree-size buffer-undo-tree)
+	      (undo-list-byte-size (undo-tree-node-redo current)))
+	(setf (undo-tree-node-redo current)
+	      (undo-list-pop-changeset 'discard-pos))
+	(incf (undo-tree-size buffer-undo-tree)
+	      (undo-list-byte-size (undo-tree-node-redo current))))
+
+      ;; rewind current node and update timestamp
+      (setf (undo-tree-current buffer-undo-tree)
+	    (undo-tree-node-previous (undo-tree-current buffer-undo-tree)))
+      (unless preserve-timestamps
+	(setf (undo-tree-node-timestamp (undo-tree-current buffer-undo-tree))
+	      (current-time)))
+
+      ;; if undoing-in-region, record current node, region and direction so we
+      ;; can tell if undo-in-region is repeated, and re-activate mark if in
+      ;; `transient-mark-mode'; if not, erase any leftover data
+      (if (not undo-in-region)
+	  (undo-tree-node-clear-region-data current)
+	(goto-char pos)
+	;; note: we deliberately want to store the region information in the
+	;; node *below* the now current one
+	(setf (undo-tree-node-undo-beginning current) (region-beginning)
+	      (undo-tree-node-undo-end current) (region-end))
+	(set-marker pos nil)))
+
+    ;; undo deactivates mark unless undoing-in-region
+    (setq deactivate-mark (not undo-in-region))))
+
+
+
+(defun undo-tree-redo (&optional arg)
+  "Redo changes. A numeric ARG serves as a repeat count.
+
+In Transient Mark mode when the mark is active, only redo changes
+within the current region. Similarly, when not in Transient Mark
+mode, just \\[universal-argument] as an argument limits redo to
+changes within the current region."
+  (interactive "*P")
+  ;; throw error if undo is disabled in buffer
+  (when (eq buffer-undo-list t)
+    (user-error "No undo information in this buffer"))
+  (undo-tree-redo-1 arg)
+  ;; inform user if at branch point
+  (when (> (undo-tree-num-branches) 1) (message "Undo branch point!")))
+
+
+(defun undo-tree-redo-1 (&optional arg preserve-undo preserve-timestamps)
+  ;; Internal redo function. An active mark in `transient-mark-mode', or
+  ;; non-nil ARG otherwise, enables undo-in-region. Non-nil PRESERVE-UNDO
+  ;; causes the existing redo record to be preserved, rather than replacing it
+  ;; with the new one generated by undoing. Non-nil PRESERVE-TIMESTAMPS
+  ;; disables updating of timestamps in visited undo-tree nodes. (This latter
+  ;; should *only* be used when temporarily visiting another undo state and
+  ;; immediately returning to the original state afterwards. Otherwise, it
+  ;; could cause history-discarding errors.)
+  (let ((undo-in-progress t)
+	(redo-in-region (and undo-tree-enable-undo-in-region
+			     (or (region-active-p)
+				 (and arg (not (numberp arg))))))
+	pos current)
+    ;; transfer entries accumulated in `buffer-undo-list' to
+    ;; `buffer-undo-tree'
+    (undo-list-transfer-to-tree)
+
+    (dotimes (i (or (and (numberp arg) (prefix-numeric-value arg)) 1))
+      ;; check if at bottom of undo tree
+      (when (null (undo-tree-node-next (undo-tree-current buffer-undo-tree)))
+	(user-error "No further redo information"))
+
+      ;; if region is active, or a non-numeric prefix argument was supplied,
+      ;; try to pull out a new branch of changes affecting the region
+      (when (and redo-in-region
+		 (not (undo-tree-pull-redo-in-region-branch
+		       (region-beginning) (region-end))))
+	(user-error "No further redo information for region"))
+
+      ;; get next node (but DON'T advance current node in tree yet, in case
+      ;; redoing fails)
+      (setq current (undo-tree-current buffer-undo-tree)
+	    current (nth (undo-tree-node-branch current)
+			 (undo-tree-node-next current)))
+      ;; remove any GC'd elements from node's redo list
+      (decf (undo-tree-size buffer-undo-tree)
+	    (undo-list-byte-size (undo-tree-node-redo current)))
+      (setf (undo-tree-node-redo current)
+	    (undo-list-clean-GCd-elts (undo-tree-node-redo current)))
+      (incf (undo-tree-size buffer-undo-tree)
+	    (undo-list-byte-size (undo-tree-node-redo current)))
+      ;; redo one record from undo tree
+      (when redo-in-region
+	(setq pos (set-marker (make-marker) (point)))
+	(set-marker-insertion-type pos t))
+      (primitive-undo 1 (undo-tree-copy-list (undo-tree-node-redo current)))
+      (undo-boundary)
+      ;; advance current node in tree
+      (setf (undo-tree-current buffer-undo-tree) current)
+
+      ;; if preserving old undo record, discard new undo entries that
+      ;; `primitive-undo' has added to `buffer-undo-list', and remove any GC'd
+      ;; elements from node's redo list
+      (if preserve-undo
+	  (progn
+	    (undo-list-pop-changeset)
+	    (decf (undo-tree-size buffer-undo-tree)
+		  (undo-list-byte-size (undo-tree-node-undo current)))
+	    (setf (undo-tree-node-undo current)
+		  (undo-list-clean-GCd-elts (undo-tree-node-undo current)))
+	    (incf (undo-tree-size buffer-undo-tree)
+		  (undo-list-byte-size (undo-tree-node-undo current))))
+	;; otherwise, record undo entries that `primitive-undo' has added to
+	;; `buffer-undo-list' in current node's undo record, replacing
+	;; existing entry if one already exists
+	(decf (undo-tree-size buffer-undo-tree)
+	      (undo-list-byte-size (undo-tree-node-undo current)))
+	(setf (undo-tree-node-undo current)
+	      (undo-list-pop-changeset 'discard-pos))
+	(incf (undo-tree-size buffer-undo-tree)
+	      (undo-list-byte-size (undo-tree-node-undo current))))
+
+      ;; update timestamp
+      (unless preserve-timestamps
+	(setf (undo-tree-node-timestamp current) (current-time)))
+
+      ;; if redoing-in-region, record current node, region and direction so we
+      ;; can tell if redo-in-region is repeated, and re-activate mark if in
+      ;; `transient-mark-mode'
+      (if (not redo-in-region)
+	  (undo-tree-node-clear-region-data current)
+	(goto-char pos)
+	(setf (undo-tree-node-redo-beginning current) (region-beginning)
+	      (undo-tree-node-redo-end current) (region-end))
+	(set-marker pos nil)))
+
+    ;; redo deactivates the mark unless redoing-in-region
+    (setq deactivate-mark (not redo-in-region))))
+
+
+
+(defun undo-tree-switch-branch (branch)
+  "Switch to a different BRANCH of the undo tree.
+This will affect which branch to descend when *redoing* changes
+using `undo-tree-redo'."
+  (interactive (list (or (and prefix-arg (prefix-numeric-value prefix-arg))
+                         (and (not (eq buffer-undo-list t))
+			      (or (undo-list-transfer-to-tree) t)
+			      (let ((b (undo-tree-node-branch
+					(undo-tree-current
+					 buffer-undo-tree))))
+				(cond
+				 ;; switch to other branch if only 2
+				 ((= (undo-tree-num-branches) 2) (- 1 b))
+				 ;; prompt if more than 2
+				 ((> (undo-tree-num-branches) 2)
+				  (read-number
+				   (format "Branch (0-%d, on %d): "
+					   (1- (undo-tree-num-branches)) b)))
+				 ))))))
+  ;; throw error if undo is disabled in buffer
+  (when (eq buffer-undo-list t)
+    (user-error "No undo information in this buffer"))
+  ;; sanity check branch number
+  (when (<= (undo-tree-num-branches) 1)
+    (user-error "Not at undo branch point"))
+  (when (or (< branch 0) (> branch (1- (undo-tree-num-branches))))
+    (user-error "Invalid branch number"))
+  ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree'
+  (undo-list-transfer-to-tree)
+  ;; switch branch
+  (setf (undo-tree-node-branch (undo-tree-current buffer-undo-tree))
+	branch)
+  (message "Switched to branch %d" branch))
+
+
+(defun undo-tree-set (node &optional preserve-timestamps)
+  ;; Set buffer to state corresponding to NODE. Returns intersection point
+  ;; between path back from current node and path back from selected NODE.
+  ;; Non-nil PRESERVE-TIMESTAMPS disables updating of timestamps in visited
+  ;; undo-tree nodes. (This should *only* be used when temporarily visiting
+  ;; another undo state and immediately returning to the original state
+  ;; afterwards. Otherwise, it could cause history-discarding errors.)
+  (let ((path (make-hash-table :test 'eq))
+        (n node))
+    (puthash (undo-tree-root buffer-undo-tree) t path)
+    ;; build list of nodes leading back from selected node to root, updating
+    ;; branches as we go to point down to selected node
+    (while (progn
+             (puthash n t path)
+             (when (undo-tree-node-previous n)
+               (setf (undo-tree-node-branch (undo-tree-node-previous n))
+                     (undo-tree-position
+                      n (undo-tree-node-next (undo-tree-node-previous n))))
+               (setq n (undo-tree-node-previous n)))))
+    ;; work backwards from current node until we intersect path back from
+    ;; selected node
+    (setq n (undo-tree-current buffer-undo-tree))
+    (while (not (gethash n path))
+      (setq n (undo-tree-node-previous n)))
+    ;; ascend tree until intersection node
+    (while (not (eq (undo-tree-current buffer-undo-tree) n))
+      (undo-tree-undo-1 nil nil preserve-timestamps))
+    ;; descend tree until selected node
+    (while (not (eq (undo-tree-current buffer-undo-tree) node))
+      (undo-tree-redo-1 nil nil preserve-timestamps))
+    n))  ; return intersection node
+
+
+
+(defun undo-tree-save-state-to-register (register)
+  "Store current undo-tree state to REGISTER.
+The saved state can be restored using
+`undo-tree-restore-state-from-register'.
+Argument is a character, naming the register."
+  (interactive "cUndo-tree state to register: ")
+  ;; throw error if undo is disabled in buffer
+  (when (eq buffer-undo-list t)
+    (user-error "No undo information in this buffer"))
+  ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree'
+  (undo-list-transfer-to-tree)
+  ;; save current node to REGISTER
+  (set-register
+   register (registerv-make
+	     (undo-tree-make-register-data
+	      (current-buffer) (undo-tree-current buffer-undo-tree))
+	     :print-func 'undo-tree-register-data-print-func))
+  ;; record REGISTER in current node, for visualizer
+  (setf (undo-tree-node-register (undo-tree-current buffer-undo-tree))
+	register))
+
+
+
+(defun undo-tree-restore-state-from-register (register)
+  "Restore undo-tree state from REGISTER.
+The state must be saved using `undo-tree-save-state-to-register'.
+Argument is a character, naming the register."
+  (interactive "*cRestore undo-tree state from register: ")
+  ;; throw error if undo is disabled in buffer, or if register doesn't contain
+  ;; an undo-tree node
+  (let ((data (registerv-data (get-register register))))
+    (cond
+     ((eq buffer-undo-list t)
+      (user-error "No undo information in this buffer"))
+     ((not (undo-tree-register-data-p data))
+      (user-error "Register doesn't contain undo-tree state"))
+     ((not (eq (current-buffer) (undo-tree-register-data-buffer data)))
+      (user-error "Register contains undo-tree state for a different buffer")))
+    ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree'
+    (undo-list-transfer-to-tree)
+    ;; restore buffer state corresponding to saved node
+    (undo-tree-set (undo-tree-register-data-node data))))
+
+
+
+
+;;; =====================================================================
+;;;                    Persistent storage commands
+
+(defun undo-tree-make-history-save-file-name (file)
+  "Create the undo history file name for FILE.
+Normally this is the file's name with \".\" prepended and
+\".~undo-tree~\" appended.
+
+A match for FILE is sought in `undo-tree-history-directory-alist'
+\(see the documentation of that variable for details\). If the
+directory for the backup doesn't exist, it is created."
+  (let* ((backup-directory-alist undo-tree-history-directory-alist)
+	 (name (make-backup-file-name-1 file)))
+    (concat (file-name-directory name) "." (file-name-nondirectory name)
+	    ".~undo-tree~")))
+
+
+(defun undo-tree-save-history (&optional filename overwrite)
+  "Store undo-tree history to file.
+
+If optional argument FILENAME is omitted, default save file is
+\".<buffer-file-name>.~undo-tree\" if buffer is visiting a file.
+Otherwise, prompt for one.
+
+If OVERWRITE is non-nil, any existing file will be overwritten
+without asking for confirmation."
+  (interactive)
+  (when (eq buffer-undo-list t)
+    (user-error "No undo information in this buffer"))
+  (undo-list-transfer-to-tree)
+  (when (and buffer-undo-tree (not (eq buffer-undo-tree t)))
+    (condition-case nil
+	(undo-tree-kill-visualizer)
+      (error (undo-tree-clear-visualizer-data buffer-undo-tree)))
+    (let ((buff (current-buffer))
+	  tree)
+      ;; get filename
+      (unless filename
+	(setq filename
+	      (if buffer-file-name
+		  (undo-tree-make-history-save-file-name buffer-file-name)
+		(expand-file-name (read-file-name "File to save in: ") nil))))
+      (when (or (not (file-exists-p filename))
+		overwrite
+		(yes-or-no-p (format "Overwrite \"%s\"? " filename)))
+	(unwind-protect
+	    (progn
+	      ;; transform undo-tree into non-circular structure, and make
+	      ;; temporary copy
+	      (undo-tree-decircle buffer-undo-tree)
+	      (setq tree (copy-undo-tree buffer-undo-tree))
+	      ;; discard undo-tree object pool before saving
+	      (setf (undo-tree-object-pool tree) nil)
+	      ;; print undo-tree to file
+	      ;; NOTE: We use `with-temp-buffer' instead of `with-temp-file'
+	      ;;       to allow `auto-compression-mode' to take effect, in
+	      ;;       case user has overridden or advised the default
+	      ;;       `undo-tree-make-history-save-file-name' to add a
+	      ;;       compressed file extension.
+	      (with-auto-compression-mode
+		(with-temp-buffer
+		  (prin1 (sha1 buff) (current-buffer))
+		  (terpri (current-buffer))
+		  (let ((print-circle t)) (prin1 tree (current-buffer)))
+		  (write-region nil nil filename))))
+	  ;; restore circular undo-tree data structure
+	  (undo-tree-recircle buffer-undo-tree))
+	))))
+
+
+
+(defun undo-tree-load-history (&optional filename noerror)
+  "Load undo-tree history from file.
+
+If optional argument FILENAME is null, default load file is
+\".<buffer-file-name>.~undo-tree\" if buffer is visiting a file.
+Otherwise, prompt for one.
+
+If optional argument NOERROR is non-nil, return nil instead of
+signaling an error if file is not found."
+  (interactive)
+  ;; get filename
+  (unless filename
+    (setq filename
+	  (if buffer-file-name
+	      (undo-tree-make-history-save-file-name buffer-file-name)
+	    (expand-file-name (read-file-name "File to load from: ") nil))))
+
+  ;; attempt to read undo-tree from FILENAME
+  (catch 'load-error
+    (unless (file-exists-p filename)
+      (if noerror
+	  (throw 'load-error nil)
+	(error "File \"%s\" does not exist; could not load undo-tree history"
+	       filename)))
+    (let (buff hash tree)
+      (setq buff (current-buffer))
+      (with-auto-compression-mode
+	(with-temp-buffer
+	  (insert-file-contents filename)
+	  (goto-char (point-min))
+	  (condition-case nil
+	      (setq hash (read (current-buffer)))
+	    (error
+	     (kill-buffer nil)
+	     (funcall (if noerror 'message 'user-error)
+		      "Error reading undo-tree history from \"%s\"" filename)
+	     (throw 'load-error nil)))
+	  (unless (string= (sha1 buff) hash)
+	    (kill-buffer nil)
+	    (funcall (if noerror 'message 'user-error)
+		     "Buffer has been modified; could not load undo-tree history")
+	    (throw 'load-error nil))
+	  (condition-case nil
+	      (setq tree (read (current-buffer)))
+	    (error
+	     (kill-buffer nil)
+	     (funcall (if noerror 'message 'error)
+		      "Error reading undo-tree history from \"%s\"" filename)
+	     (throw 'load-error nil)))
+	  (kill-buffer nil)))
+      ;; initialise empty undo-tree object pool
+      (setf (undo-tree-object-pool tree)
+	    (make-hash-table :test 'eq :weakness 'value))
+      ;; restore circular undo-tree data structure
+      (undo-tree-recircle tree)
+      (setq buffer-undo-tree tree))))
+
+
+
+;; Versions of save/load functions for use in hooks
+(defun undo-tree-save-history-hook ()
+  (when (and undo-tree-mode undo-tree-auto-save-history
+	     (not (eq buffer-undo-list t)))
+    (undo-tree-save-history nil t) nil))
+
+(defun undo-tree-load-history-hook ()
+  (when (and undo-tree-mode undo-tree-auto-save-history
+	     (not (eq buffer-undo-list t))
+	     (not revert-buffer-in-progress-p))
+    (undo-tree-load-history nil t)))
+
+
+
+
+;;; =====================================================================
+;;;                    Visualizer drawing functions
+
+(defun undo-tree-visualize ()
+  "Visualize the current buffer's undo tree."
+  (interactive "*")
+  (deactivate-mark)
+  ;; throw error if undo is disabled in buffer
+  (when (eq buffer-undo-list t)
+    (user-error "No undo information in this buffer"))
+  ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree'
+  (undo-list-transfer-to-tree)
+  ;; add hook to kill visualizer buffer if original buffer is changed
+  (add-hook 'before-change-functions 'undo-tree-kill-visualizer nil t)
+  ;; prepare *undo-tree* buffer, then draw tree in it
+  (let ((undo-tree buffer-undo-tree)
+        (buff (current-buffer))
+	(display-buffer-mark-dedicated 'soft))
+    (switch-to-buffer-other-window
+     (get-buffer-create undo-tree-visualizer-buffer-name))
+    (setq undo-tree-visualizer-parent-buffer buff)
+    (setq undo-tree-visualizer-parent-mtime
+	  (and (buffer-file-name buff)
+	       (nth 5 (file-attributes (buffer-file-name buff)))))
+    (setq undo-tree-visualizer-initial-node (undo-tree-current undo-tree))
+    (setq undo-tree-visualizer-spacing
+	  (undo-tree-visualizer-calculate-spacing))
+    (make-local-variable 'undo-tree-visualizer-timestamps)
+    (make-local-variable 'undo-tree-visualizer-diff)
+    (setq buffer-undo-tree undo-tree)
+    (undo-tree-visualizer-mode)
+    ;; FIXME; don't know why `undo-tree-visualizer-mode' clears this
+    (setq buffer-undo-tree undo-tree)
+    (set (make-local-variable 'undo-tree-visualizer-lazy-drawing)
+	 (or (eq undo-tree-visualizer-lazy-drawing t)
+	     (and (numberp undo-tree-visualizer-lazy-drawing)
+		  (>= (undo-tree-count undo-tree)
+		      undo-tree-visualizer-lazy-drawing))))
+    (when undo-tree-visualizer-diff (undo-tree-visualizer-show-diff))
+    (let ((inhibit-read-only t)) (undo-tree-draw-tree undo-tree))))
+
+
+(defun undo-tree-kill-visualizer (&rest _dummy)
+  ;; Kill visualizer. Added to `before-change-functions' hook of original
+  ;; buffer when visualizer is invoked.
+  (unless (or undo-tree-inhibit-kill-visualizer
+	      (null (get-buffer undo-tree-visualizer-buffer-name)))
+    (with-current-buffer undo-tree-visualizer-buffer-name
+      (undo-tree-visualizer-quit))))
+
+
+
+(defun undo-tree-draw-tree (undo-tree)
+  ;; Draw undo-tree in current buffer starting from NODE (or root if nil).
+  (let ((node (if undo-tree-visualizer-lazy-drawing
+		  (undo-tree-current undo-tree)
+		(undo-tree-root undo-tree))))
+    (erase-buffer)
+    (setq undo-tree-visualizer-needs-extending-down nil
+	  undo-tree-visualizer-needs-extending-up nil)
+    (undo-tree-clear-visualizer-data undo-tree)
+    (undo-tree-compute-widths node)
+    ;; lazy drawing starts vertically centred and displaced horizontally to
+    ;; the left (window-width/4), since trees will typically grow right
+    (if undo-tree-visualizer-lazy-drawing
+	(progn
+	  (undo-tree-move-down (/ (window-height) 2))
+	  (undo-tree-move-forward (max 2 (/ (window-width) 4)))) ; left margin
+      ;; non-lazy drawing starts in centre at top of buffer
+      (undo-tree-move-down 1)  ; top margin
+      (undo-tree-move-forward
+       (max (/ (window-width) 2)
+	    (+ (undo-tree-node-char-lwidth node)
+	       ;; add space for left part of left-most time-stamp
+	       (if undo-tree-visualizer-timestamps
+		   (/ (- undo-tree-visualizer-spacing 4) 2)
+		 0)
+	       2))))  ; left margin
+    ;; link starting node to its representation in visualizer
+    (setf (undo-tree-node-marker node) (make-marker))
+    (set-marker-insertion-type (undo-tree-node-marker node) nil)
+    (move-marker (undo-tree-node-marker node) (point))
+    ;; draw undo-tree
+    (let ((undo-tree-insert-face 'undo-tree-visualizer-default-face)
+	  node-list)
+      (if (not undo-tree-visualizer-lazy-drawing)
+	  (undo-tree-extend-down node t)
+	(undo-tree-extend-down node)
+	(undo-tree-extend-up node)
+	(setq node-list undo-tree-visualizer-needs-extending-down
+	      undo-tree-visualizer-needs-extending-down nil)
+	(while node-list (undo-tree-extend-down (pop node-list)))))
+    ;; highlight active branch
+    (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face))
+      (undo-tree-highlight-active-branch
+       (or undo-tree-visualizer-needs-extending-up
+	   (undo-tree-root undo-tree))))
+    ;; highlight current node
+    (undo-tree-draw-node (undo-tree-current undo-tree) 'current)))
+
+
+(defun undo-tree-extend-down (node &optional bottom)
+  ;; Extend tree downwards starting from NODE and point. If BOTTOM is t,
+  ;; extend all the way down to the leaves. If BOTTOM is a node, extend down
+  ;; as far as that node. If BOTTOM is an integer, extend down as far as that
+  ;; line. Otherwise, only extend visible portion of tree. NODE is assumed to
+  ;; already have a node marker. Returns non-nil if anything was actually
+  ;; extended.
+  (let ((extended nil)
+	(cur-stack (list node))
+	next-stack)
+    ;; don't bother extending if BOTTOM specifies an already-drawn node
+    (unless (and (undo-tree-node-p bottom) (undo-tree-node-marker bottom))
+      ;; draw nodes layer by layer
+      (while (or cur-stack
+		 (prog1 (setq cur-stack next-stack)
+		   (setq next-stack nil)))
+	(setq node (pop cur-stack))
+	;; if node is within range being drawn...
+	(if (or (eq bottom t)
+		(and (undo-tree-node-p bottom)
+		     (not (eq (undo-tree-node-previous node) bottom)))
+		(and (integerp bottom)
+		     (>= bottom (line-number-at-pos
+				 (undo-tree-node-marker node))))
+		(and (null bottom)
+		     (pos-visible-in-window-p (undo-tree-node-marker node)
+					      nil t)))
+	    ;; ...draw one layer of node's subtree (if not already drawn)
+	    (progn
+	      (unless (and (undo-tree-node-next node)
+			   (undo-tree-node-marker
+			    (nth (undo-tree-node-branch node)
+				 (undo-tree-node-next node))))
+		(goto-char (undo-tree-node-marker node))
+		(undo-tree-draw-subtree node)
+		(setq extended t))
+	      (setq next-stack
+		    (append (undo-tree-node-next node) next-stack)))
+	  ;; ...otherwise, postpone drawing until later
+	  (push node undo-tree-visualizer-needs-extending-down))))
+    extended))
+
+
+(defun undo-tree-extend-up (node &optional top)
+  ;; Extend tree upwards starting from NODE. If TOP is t, extend all the way
+  ;; to root. If TOP is a node, extend up as far as that node. If TOP is an
+  ;; integer, extend up as far as that line. Otherwise, only extend visible
+  ;; portion of tree. NODE is assumed to already have a node marker. Returns
+  ;; non-nil if anything was actually extended.
+  (let ((extended nil) parent)
+    ;; don't bother extending if TOP specifies an already-drawn node
+    (unless (and (undo-tree-node-p top) (undo-tree-node-marker top))
+      (while node
+	(setq parent (undo-tree-node-previous node))
+	;; if we haven't reached root...
+	(if parent
+	    ;; ...and node is within range being drawn...
+	    (if (or (eq top t)
+		    (and (undo-tree-node-p top) (not (eq node top)))
+		    (and (integerp top)
+			 (< top (line-number-at-pos
+				 (undo-tree-node-marker node))))
+		    (and (null top)
+			 ;; NOTE: we check point in case window-start is outdated
+			 (< (min (line-number-at-pos (point))
+				 (line-number-at-pos (window-start)))
+			    (line-number-at-pos
+			     (undo-tree-node-marker node)))))
+		;; ...and it hasn't already been drawn
+		(when (not (undo-tree-node-marker parent))
+		  ;; link parent node to its representation in visualizer
+		  (undo-tree-compute-widths parent)
+		  (undo-tree-move-to-parent node)
+		  (setf (undo-tree-node-marker parent) (make-marker))
+		  (set-marker-insertion-type
+		   (undo-tree-node-marker parent) nil)
+		  (move-marker (undo-tree-node-marker parent) (point))
+		  ;; draw subtree beneath parent
+		  (setq undo-tree-visualizer-needs-extending-down
+			(nconc (delq node (undo-tree-draw-subtree parent))
+			       undo-tree-visualizer-needs-extending-down))
+		  (setq extended t))
+	      ;; ...otherwise, postpone drawing for later and exit
+	      (setq undo-tree-visualizer-needs-extending-up (when parent node)
+		    parent nil))
+
+	  ;; if we've reached root, stop extending and add top margin
+	  (setq undo-tree-visualizer-needs-extending-up nil)
+	  (goto-char (undo-tree-node-marker node))
+	  (undo-tree-move-up 1)  ; top margin
+	  (delete-region (point-min) (line-beginning-position)))
+	;; next iteration
+	(setq node parent)))
+    extended))
+
+
+(defun undo-tree-expand-down (from &optional to)
+  ;; Expand tree downwards. FROM is the node to start expanding from. Stop
+  ;; expanding at TO if specified. Otherwise, just expand visible portion of
+  ;; tree and highlight active branch from FROM.
+  (when undo-tree-visualizer-needs-extending-down
+    (let ((inhibit-read-only t)
+	  node-list extended)
+      ;; extend down as far as TO node
+      (when to
+	(setq extended (undo-tree-extend-down from to))
+	(goto-char (undo-tree-node-marker to))
+	(redisplay t))  ; force redisplay to scroll buffer if necessary
+      ;; extend visible portion of tree downwards
+      (setq node-list undo-tree-visualizer-needs-extending-down
+	    undo-tree-visualizer-needs-extending-down nil)
+      (when node-list
+	(dolist (n node-list)
+	  (when (undo-tree-extend-down n) (setq extended t)))
+	;; highlight active branch in newly-extended-down portion, if any
+	(when extended
+	  (let ((undo-tree-insert-face
+		 'undo-tree-visualizer-active-branch-face))
+	    (undo-tree-highlight-active-branch from)))))))
+
+
+(defun undo-tree-expand-up (from &optional to)
+  ;; Expand tree upwards. FROM is the node to start expanding from, TO is the
+  ;; node to stop expanding at. If TO node isn't specified, just expand visible
+  ;; portion of tree and highlight active branch down to FROM.
+  (when undo-tree-visualizer-needs-extending-up
+    (let ((inhibit-read-only t)
+	  extended node-list)
+      ;; extend up as far as TO node
+      (when to
+	(setq extended (undo-tree-extend-up from to))
+	(goto-char (undo-tree-node-marker to))
+	;; simulate auto-scrolling if close to top of buffer
+	(when (<= (line-number-at-pos (point)) scroll-margin)
+	  (undo-tree-move-up (if (= scroll-conservatively 0)
+				 (/ (window-height) 2) 3))
+	  (when (undo-tree-extend-up to) (setq extended t))
+	  (goto-char (undo-tree-node-marker to))
+	  (unless (= scroll-conservatively 0) (recenter scroll-margin))))
+      ;; extend visible portion of tree upwards
+      (and undo-tree-visualizer-needs-extending-up
+	   (undo-tree-extend-up undo-tree-visualizer-needs-extending-up)
+	   (setq extended t))
+      ;; extend visible portion of tree downwards
+      (setq node-list undo-tree-visualizer-needs-extending-down
+	    undo-tree-visualizer-needs-extending-down nil)
+      (dolist (n node-list) (undo-tree-extend-down n))
+      ;; highlight active branch in newly-extended-up portion, if any
+      (when extended
+	(let ((undo-tree-insert-face
+	       'undo-tree-visualizer-active-branch-face))
+	  (undo-tree-highlight-active-branch
+	   (or undo-tree-visualizer-needs-extending-up
+	       (undo-tree-root buffer-undo-tree))
+	   from))))))
+
+
+
+(defun undo-tree-highlight-active-branch (node &optional end)
+  ;; Draw highlighted active branch below NODE in current buffer. Stop
+  ;; highlighting at END node if specified.
+  (let ((stack (list node)))
+    ;; draw active branch
+    (while stack
+      (setq node (pop stack))
+      (unless (or (eq node end)
+		  (memq node undo-tree-visualizer-needs-extending-down))
+	(goto-char (undo-tree-node-marker node))
+	(setq node (undo-tree-draw-subtree node 'active)
+	      stack (nconc stack node))))))
+
+
+(defun undo-tree-draw-node (node &optional current)
+  ;; Draw symbol representing NODE in visualizer. If CURRENT is non-nil, node
+  ;; is current node.
+  (goto-char (undo-tree-node-marker node))
+  (when undo-tree-visualizer-timestamps
+    (undo-tree-move-backward (/ undo-tree-visualizer-spacing 2)))
+
+  (let* ((undo-tree-insert-face (and undo-tree-insert-face
+				     (or (and (consp undo-tree-insert-face)
+					      undo-tree-insert-face)
+					 (list undo-tree-insert-face))))
+	 (register (undo-tree-node-register node))
+	 (unmodified (if undo-tree-visualizer-parent-mtime
+			 (undo-tree-node-unmodified-p
+			  node undo-tree-visualizer-parent-mtime)
+		       (undo-tree-node-unmodified-p node)))
+	node-string)
+    ;; check node's register (if any) still stores appropriate undo-tree state
+    (unless (and register
+		 (undo-tree-register-data-p
+		  (registerv-data (get-register register)))
+		 (eq node (undo-tree-register-data-node
+			   (registerv-data (get-register register)))))
+      (setq register nil))
+    ;; represent node by different symbols, depending on whether it's the
+    ;; current node, is saved in a register, or corresponds to an unmodified
+    ;; buffer
+    (setq node-string
+	    (cond
+	     (undo-tree-visualizer-timestamps
+	        (undo-tree-timestamp-to-string
+	         (undo-tree-node-timestamp node)
+		 undo-tree-visualizer-relative-timestamps
+		 current register))
+	     (register (char-to-string register))
+	     (unmodified "s")
+	     (current "x")
+	     (t "o"))
+	  undo-tree-insert-face
+	    (nconc
+	     (cond
+	      (current    '(undo-tree-visualizer-current-face))
+	      (unmodified '(undo-tree-visualizer-unmodified-face))
+	      (register   '(undo-tree-visualizer-register-face)))
+	     undo-tree-insert-face))
+    ;; draw node and link it to its representation in visualizer
+    (undo-tree-insert node-string)
+    (undo-tree-move-backward (if undo-tree-visualizer-timestamps
+				 (1+ (/ undo-tree-visualizer-spacing 2))
+			       1))
+    (move-marker (undo-tree-node-marker node) (point))
+    (put-text-property (point) (1+ (point)) 'undo-tree-node node)))
+
+
+(defun undo-tree-draw-subtree (node &optional active-branch)
+  ;; Draw subtree rooted at NODE. The subtree will start from point.
+  ;; If ACTIVE-BRANCH is non-nil, just draw active branch below NODE. Returns
+  ;; list of nodes below NODE.
+  (let ((num-children (length (undo-tree-node-next node)))
+        node-list pos trunk-pos n)
+    ;; draw node itself
+    (undo-tree-draw-node node)
+
+    (cond
+     ;; if we're at a leaf node, we're done
+     ((= num-children 0))
+
+     ;; if node has only one child, draw it (not strictly necessary to deal
+     ;; with this case separately, but as it's by far the most common case
+     ;; this makes the code clearer and more efficient)
+     ((= num-children 1)
+      (undo-tree-move-down 1)
+      (undo-tree-insert ?|)
+      (undo-tree-move-backward 1)
+      (undo-tree-move-down 1)
+      (undo-tree-insert ?|)
+      (undo-tree-move-backward 1)
+      (undo-tree-move-down 1)
+      (setq n (car (undo-tree-node-next node)))
+      ;; link next node to its representation in visualizer
+      (unless (markerp (undo-tree-node-marker n))
+        (setf (undo-tree-node-marker n) (make-marker))
+        (set-marker-insertion-type (undo-tree-node-marker n) nil))
+      (move-marker (undo-tree-node-marker n) (point))
+      ;; add next node to list of nodes to draw next
+      (push n node-list))
+
+     ;; if node has multiple children, draw branches
+     (t
+      (undo-tree-move-down 1)
+      (undo-tree-insert ?|)
+      (undo-tree-move-backward 1)
+      (move-marker (setq trunk-pos (make-marker)) (point))
+      ;; left subtrees
+      (undo-tree-move-backward
+       (- (undo-tree-node-char-lwidth node)
+          (undo-tree-node-char-lwidth
+           (car (undo-tree-node-next node)))))
+      (move-marker (setq pos (make-marker)) (point))
+      (setq n (cons nil (undo-tree-node-next node)))
+      (dotimes (i (/ num-children 2))
+        (setq n (cdr n))
+        (when (or (null active-branch)
+                  (eq (car n)
+                      (nth (undo-tree-node-branch node)
+                           (undo-tree-node-next node))))
+          (undo-tree-move-forward 2)
+          (undo-tree-insert ?_ (- trunk-pos pos 2))
+          (goto-char pos)
+          (undo-tree-move-forward 1)
+          (undo-tree-move-down 1)
+          (undo-tree-insert ?/)
+          (undo-tree-move-backward 2)
+          (undo-tree-move-down 1)
+          ;; link node to its representation in visualizer
+          (unless (markerp (undo-tree-node-marker (car n)))
+            (setf (undo-tree-node-marker (car n)) (make-marker))
+            (set-marker-insertion-type (undo-tree-node-marker (car n)) nil))
+          (move-marker (undo-tree-node-marker (car n)) (point))
+          ;; add node to list of nodes to draw next
+          (push (car n) node-list))
+        (goto-char pos)
+        (undo-tree-move-forward
+         (+ (undo-tree-node-char-rwidth (car n))
+            (undo-tree-node-char-lwidth (cadr n))
+            undo-tree-visualizer-spacing 1))
+        (move-marker pos (point)))
+      ;; middle subtree (only when number of children is odd)
+      (when (= (mod num-children 2) 1)
+        (setq n (cdr n))
+        (when (or (null active-branch)
+                  (eq (car n)
+                      (nth (undo-tree-node-branch node)
+                           (undo-tree-node-next node))))
+          (undo-tree-move-down 1)
+          (undo-tree-insert ?|)
+          (undo-tree-move-backward 1)
+          (undo-tree-move-down 1)
+          ;; link node to its representation in visualizer
+          (unless (markerp (undo-tree-node-marker (car n)))
+            (setf (undo-tree-node-marker (car n)) (make-marker))
+            (set-marker-insertion-type (undo-tree-node-marker (car n)) nil))
+          (move-marker (undo-tree-node-marker (car n)) (point))
+          ;; add node to list of nodes to draw next
+          (push (car n) node-list))
+        (goto-char pos)
+        (undo-tree-move-forward
+         (+ (undo-tree-node-char-rwidth (car n))
+            (if (cadr n) (undo-tree-node-char-lwidth (cadr n)) 0)
+            undo-tree-visualizer-spacing 1))
+        (move-marker pos (point)))
+      ;; right subtrees
+      (move-marker trunk-pos (1+ trunk-pos))
+      (dotimes (i (/ num-children 2))
+        (setq n (cdr n))
+        (when (or (null active-branch)
+                  (eq (car n)
+                      (nth (undo-tree-node-branch node)
+                           (undo-tree-node-next node))))
+          (goto-char trunk-pos)
+          (undo-tree-insert ?_ (- pos trunk-pos 1))
+          (goto-char pos)
+          (undo-tree-move-backward 1)
+          (undo-tree-move-down 1)
+          (undo-tree-insert ?\\)
+          (undo-tree-move-down 1)
+          ;; link node to its representation in visualizer
+          (unless (markerp (undo-tree-node-marker (car n)))
+            (setf (undo-tree-node-marker (car n)) (make-marker))
+            (set-marker-insertion-type (undo-tree-node-marker (car n)) nil))
+          (move-marker (undo-tree-node-marker (car n)) (point))
+          ;; add node to list of nodes to draw next
+          (push (car n) node-list))
+        (when (cdr n)
+          (goto-char pos)
+          (undo-tree-move-forward
+           (+ (undo-tree-node-char-rwidth (car n))
+              (if (cadr n) (undo-tree-node-char-lwidth (cadr n)) 0)
+              undo-tree-visualizer-spacing 1))
+          (move-marker pos (point))))
+      ))
+    ;; return list of nodes to draw next
+    (nreverse node-list)))
+
+
+(defun undo-tree-node-char-lwidth (node)
+  ;; Return left-width of NODE measured in characters.
+  (if (= (length (undo-tree-node-next node)) 0) 0
+    (- (* (+ undo-tree-visualizer-spacing 1) (undo-tree-node-lwidth node))
+       (if (= (undo-tree-node-cwidth node) 0)
+           (1+ (/ undo-tree-visualizer-spacing 2)) 0))))
+
+
+(defun undo-tree-node-char-rwidth (node)
+  ;; Return right-width of NODE measured in characters.
+  (if (= (length (undo-tree-node-next node)) 0) 0
+    (- (* (+ undo-tree-visualizer-spacing 1) (undo-tree-node-rwidth node))
+       (if (= (undo-tree-node-cwidth node) 0)
+           (1+ (/ undo-tree-visualizer-spacing 2)) 0))))
+
+
+(defun undo-tree-insert (str &optional arg)
+  ;; Insert character or string STR ARG times, overwriting, and using
+  ;; `undo-tree-insert-face'.
+  (unless arg (setq arg 1))
+  (when (characterp str)
+    (setq str (make-string arg str))
+    (setq arg 1))
+  (dotimes (i arg) (insert str))
+  (setq arg (* arg (length str)))
+  (undo-tree-move-forward arg)
+  ;; make sure mark isn't active, otherwise `backward-delete-char' might
+  ;; delete region instead of single char if transient-mark-mode is enabled
+  (setq mark-active nil)
+  (backward-delete-char arg)
+  (when undo-tree-insert-face
+    (put-text-property (- (point) arg) (point) 'face undo-tree-insert-face)))
+
+
+(defun undo-tree-move-down (&optional arg)
+  ;; Move down, extending buffer if necessary.
+  (let ((row (line-number-at-pos))
+        (col (current-column))
+        line)
+    (unless arg (setq arg 1))
+    (forward-line arg)
+    (setq line (line-number-at-pos))
+    ;; if buffer doesn't have enough lines, add some
+    (when (/= line (+ row arg))
+      (cond
+       ((< arg 0)
+	(insert (make-string (- line row arg) ?\n))
+	(forward-line (+ arg (- row line))))
+       (t (insert (make-string (- arg (- line row)) ?\n)))))
+    (undo-tree-move-forward col)))
+
+
+(defun undo-tree-move-up (&optional arg)
+  ;; Move up, extending buffer if necessary.
+  (unless arg (setq arg 1))
+  (undo-tree-move-down (- arg)))
+
+
+(defun undo-tree-move-forward (&optional arg)
+  ;; Move forward, extending buffer if necessary.
+  (unless arg (setq arg 1))
+  (let (n)
+    (cond
+     ((>= arg 0)
+      (setq n (- (line-end-position) (point)))
+      (if (> n arg)
+	  (forward-char arg)
+	(end-of-line)
+	(insert (make-string (- arg n) ? ))))
+     ((< arg 0)
+      (setq arg (- arg))
+      (setq n (- (point) (line-beginning-position)))
+      (when (< (- n 2) arg)  ; -2 to create left-margin
+	;; no space left - shift entire buffer contents right!
+	(let ((pos (move-marker (make-marker) (point))))
+	  (set-marker-insertion-type pos t)
+	  (goto-char (point-min))
+	  (while (not (eobp))
+	    (insert-before-markers (make-string (- arg -2 n) ? ))
+	    (forward-line 1))
+	  (goto-char pos)))
+      (backward-char arg)))))
+
+
+(defun undo-tree-move-backward (&optional arg)
+  ;; Move backward, extending buffer if necessary.
+  (unless arg (setq arg 1))
+  (undo-tree-move-forward (- arg)))
+
+
+(defun undo-tree-move-to-parent (node)
+  ;; Move to position of parent of NODE, extending buffer if necessary.
+  (let* ((parent (undo-tree-node-previous node))
+	 (n (undo-tree-node-next parent))
+	 (l (length n)) p)
+    (goto-char (undo-tree-node-marker node))
+    (unless (= l 1)
+      ;; move horizontally
+      (setq p (undo-tree-position node n))
+      (cond
+       ;; node in centre subtree: no horizontal movement
+       ((and (= (mod l 2) 1) (= p (/ l 2))))
+       ;; node in left subtree: move right
+       ((< p (/ l 2))
+	(setq n (nthcdr p n))
+	(undo-tree-move-forward
+	 (+ (undo-tree-node-char-rwidth (car n))
+	    (/ undo-tree-visualizer-spacing 2) 1))
+	(dotimes (i (- (/ l 2) p 1))
+	  (setq n (cdr n))
+	  (undo-tree-move-forward
+	   (+ (undo-tree-node-char-lwidth (car n))
+	      (undo-tree-node-char-rwidth (car n))
+	      undo-tree-visualizer-spacing 1)))
+	(when (= (mod l 2) 1)
+	  (setq n (cdr n))
+	  (undo-tree-move-forward
+	   (+ (undo-tree-node-char-lwidth (car n))
+	      (/ undo-tree-visualizer-spacing 2) 1))))
+       (t ;; node in right subtree: move left
+	(setq n (nthcdr (/ l 2) n))
+	(when (= (mod l 2) 1)
+	  (undo-tree-move-backward
+	   (+ (undo-tree-node-char-rwidth (car n))
+	      (/ undo-tree-visualizer-spacing 2) 1))
+	  (setq n (cdr n)))
+	(dotimes (i (- p (/ l 2) (mod l 2)))
+	  (undo-tree-move-backward
+	   (+ (undo-tree-node-char-lwidth (car n))
+	      (undo-tree-node-char-rwidth (car n))
+	      undo-tree-visualizer-spacing 1))
+	  (setq n (cdr n)))
+	(undo-tree-move-backward
+	 (+ (undo-tree-node-char-lwidth (car n))
+	    (/ undo-tree-visualizer-spacing 2) 1)))))
+    ;; move vertically
+    (undo-tree-move-up 3)))
+
+
+(defun undo-tree-timestamp-to-string
+  (timestamp &optional relative current register)
+  ;; Convert TIMESTAMP to string (either absolute or RELATVE time), indicating
+  ;; if it's the CURRENT node and/or has an associated REGISTER.
+  (if relative
+      ;; relative time
+      (let ((time (floor (float-time
+			  (subtract-time (current-time) timestamp))))
+	    n)
+	(setq time
+	      ;; years
+	      (if (> (setq n (/ time 315360000)) 0)
+		  (if (> n 999) "-ages" (format "-%dy" n))
+		(setq time (% time 315360000))
+		;; days
+		(if (> (setq n (/ time 86400)) 0)
+		    (format "-%dd" n)
+		  (setq time (% time 86400))
+		  ;; hours
+		  (if (> (setq n (/ time 3600)) 0)
+		      (format "-%dh" n)
+		    (setq time (% time 3600))
+		    ;; mins
+		    (if (> (setq n (/ time 60)) 0)
+			(format "-%dm" n)
+		      ;; secs
+		      (format "-%ds" (% time 60)))))))
+	(setq time (concat
+		    (if current "*" " ")
+		    time
+		    (if register (concat "[" (char-to-string register) "]")
+		      "   ")))
+	(setq n (length time))
+	(if (< n 9)
+	    (concat (make-string (- 9 n) ? ) time)
+	  time))
+    ;; absolute time
+    (concat (if current " *" "  ")
+	    (format-time-string "%H:%M:%S" timestamp)
+	    (if register
+		(concat "[" (char-to-string register) "]")
+	      "   "))))
+
+
+
+
+;;; =====================================================================
+;;;                        Visualizer commands
+
+(define-derived-mode
+  undo-tree-visualizer-mode special-mode "undo-tree-visualizer"
+  "Major mode used in undo-tree visualizer.
+
+The undo-tree visualizer can only be invoked from a buffer in
+which `undo-tree-mode' is enabled. The visualizer displays the
+undo history tree graphically, and allows you to browse around
+the undo history, undoing or redoing the corresponding changes in
+the parent buffer.
+
+Within the undo-tree visualizer, the following keys are available:
+
+  \\{undo-tree-visualizer-mode-map}"
+  :syntax-table nil
+  :abbrev-table nil
+  (setq truncate-lines t)
+  (setq cursor-type nil)
+  (setq undo-tree-visualizer-selected-node nil))
+
+
+
+(defun undo-tree-visualize-undo (&optional arg)
+  "Undo changes. A numeric ARG serves as a repeat count."
+  (interactive "p")
+  (let ((old (undo-tree-current buffer-undo-tree))
+	current)
+    ;; unhighlight old current node
+    (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face)
+	  (inhibit-read-only t))
+      (undo-tree-draw-node old))
+    ;; undo in parent buffer
+    (switch-to-buffer-other-window undo-tree-visualizer-parent-buffer)
+    (deactivate-mark)
+    (unwind-protect
+	(let ((undo-tree-inhibit-kill-visualizer t)) (undo-tree-undo-1 arg))
+      (setq current (undo-tree-current buffer-undo-tree))
+      (switch-to-buffer-other-window undo-tree-visualizer-buffer-name)
+      ;; when using lazy drawing, extend tree upwards as required
+      (when undo-tree-visualizer-lazy-drawing
+	(undo-tree-expand-up old current))
+      ;; highlight new current node
+      (let ((inhibit-read-only t)) (undo-tree-draw-node current 'current))
+      ;; update diff display, if any
+      (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff)))))
+
+
+(defun undo-tree-visualize-redo (&optional arg)
+  "Redo changes. A numeric ARG serves as a repeat count."
+  (interactive "p")
+  (let ((old (undo-tree-current buffer-undo-tree))
+	current)
+    ;; unhighlight old current node
+    (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face)
+	  (inhibit-read-only t))
+      (undo-tree-draw-node (undo-tree-current buffer-undo-tree)))
+    ;; redo in parent buffer
+    (switch-to-buffer-other-window undo-tree-visualizer-parent-buffer)
+    (deactivate-mark)
+    (unwind-protect
+	(let ((undo-tree-inhibit-kill-visualizer t)) (undo-tree-redo-1 arg))
+      (setq current (undo-tree-current buffer-undo-tree))
+      (switch-to-buffer-other-window undo-tree-visualizer-buffer-name)
+      ;; when using lazy drawing, extend tree downwards as required
+      (when undo-tree-visualizer-lazy-drawing
+	(undo-tree-expand-down old current))
+      ;; highlight new current node
+      (let ((inhibit-read-only t)) (undo-tree-draw-node current 'current))
+      ;; update diff display, if any
+      (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff)))))
+
+
+(defun undo-tree-visualize-switch-branch-right (arg)
+  "Switch to next branch of the undo tree.
+This will affect which branch to descend when *redoing* changes
+using `undo-tree-redo' or `undo-tree-visualizer-redo'."
+  (interactive "p")
+  ;; un-highlight old active branch below current node
+  (goto-char (undo-tree-node-marker (undo-tree-current buffer-undo-tree)))
+  (let ((undo-tree-insert-face 'undo-tree-visualizer-default-face)
+	(inhibit-read-only t))
+    (undo-tree-highlight-active-branch (undo-tree-current buffer-undo-tree)))
+  ;; increment branch
+  (let ((branch (undo-tree-node-branch (undo-tree-current buffer-undo-tree))))
+  (setf (undo-tree-node-branch (undo-tree-current buffer-undo-tree))
+        (cond
+         ((>= (+ branch arg) (undo-tree-num-branches))
+          (1- (undo-tree-num-branches)))
+         ((<= (+ branch arg) 0) 0)
+         (t (+ branch arg))))
+  (let ((inhibit-read-only t))
+    ;; highlight new active branch below current node
+    (goto-char (undo-tree-node-marker (undo-tree-current buffer-undo-tree)))
+    (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face))
+      (undo-tree-highlight-active-branch (undo-tree-current buffer-undo-tree)))
+    ;; re-highlight current node
+    (undo-tree-draw-node (undo-tree-current buffer-undo-tree) 'current))))
+
+
+(defun undo-tree-visualize-switch-branch-left (arg)
+  "Switch to previous branch of the undo tree.
+This will affect which branch to descend when *redoing* changes
+using `undo-tree-redo' or `undo-tree-visualizer-redo'."
+  (interactive "p")
+  (undo-tree-visualize-switch-branch-right (- arg)))
+
+
+(defun undo-tree-visualizer-quit ()
+  "Quit the undo-tree visualizer."
+  (interactive)
+  (undo-tree-clear-visualizer-data buffer-undo-tree)
+  ;; remove kill visualizer hook from parent buffer
+  (unwind-protect
+      (with-current-buffer undo-tree-visualizer-parent-buffer
+	(remove-hook 'before-change-functions 'undo-tree-kill-visualizer t))
+    ;; kill diff buffer, if any
+    (when undo-tree-visualizer-diff (undo-tree-visualizer-hide-diff))
+    (let ((parent undo-tree-visualizer-parent-buffer)
+	  window)
+      ;; kill visualizer buffer
+      (kill-buffer nil)
+      ;; switch back to parent buffer
+      (unwind-protect
+	  (if (setq window (get-buffer-window parent))
+	      (select-window window)
+	    (switch-to-buffer parent))))))
+
+
+(defun undo-tree-visualizer-abort ()
+  "Quit the undo-tree visualizer and return buffer to original state."
+  (interactive)
+  (let ((node undo-tree-visualizer-initial-node))
+    (undo-tree-visualizer-quit)
+    (undo-tree-set node)))
+
+
+(defun undo-tree-visualizer-set (&optional pos)
+  "Set buffer to state corresponding to undo tree node
+at POS, or point if POS is nil."
+  (interactive)
+  (unless pos (setq pos (point)))
+  (let ((node (get-text-property pos 'undo-tree-node)))
+    (when node
+      ;; set parent buffer to state corresponding to node at POS
+      (switch-to-buffer-other-window undo-tree-visualizer-parent-buffer)
+      (let ((undo-tree-inhibit-kill-visualizer t)) (undo-tree-set node))
+      (switch-to-buffer-other-window undo-tree-visualizer-buffer-name)
+      ;; re-draw undo tree
+      (let ((inhibit-read-only t)) (undo-tree-draw-tree buffer-undo-tree))
+      (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff)))))
+
+
+(defun undo-tree-visualizer-mouse-set (pos)
+  "Set buffer to state corresponding to undo tree node
+at mouse event POS."
+  (interactive "@e")
+  (undo-tree-visualizer-set (event-start (nth 1 pos))))
+
+
+(defun undo-tree-visualize-undo-to-x (&optional x)
+  "Undo to last branch point, register, or saved state.
+If X is the symbol `branch', undo to last branch point. If X is
+the symbol `register', undo to last register. If X is the sumbol
+`saved', undo to last saved state. If X is null, undo to first of
+these that's encountered.
+
+Interactively, a single \\[universal-argument] specifies
+`branch', a double \\[universal-argument] \\[universal-argument]
+specifies `saved', and a negative prefix argument specifies
+`register'."
+  (interactive "P")
+  (when (and (called-interactively-p 'any) x)
+    (setq x (prefix-numeric-value x)
+	  x (cond
+	     ((< x 0)  'register)
+	     ((<= x 4) 'branch)
+	     (t        'saved))))
+  (let ((current (if undo-tree-visualizer-selection-mode
+		     undo-tree-visualizer-selected-node
+		   (undo-tree-current buffer-undo-tree)))
+	(diff undo-tree-visualizer-diff)
+	r)
+    (undo-tree-visualizer-hide-diff)
+    (while (and (undo-tree-node-previous current)
+		(or (if undo-tree-visualizer-selection-mode
+			(progn
+			  (undo-tree-visualizer-select-previous)
+			  (setq current undo-tree-visualizer-selected-node))
+		      (undo-tree-visualize-undo)
+		      (setq current (undo-tree-current buffer-undo-tree)))
+		    t)
+		         ;; branch point
+		(not (or (and (or (null x) (eq x 'branch))
+			      (> (undo-tree-num-branches) 1))
+			 ;; register
+			 (and (or (null x) (eq x 'register))
+			      (setq r (undo-tree-node-register current))
+			      (undo-tree-register-data-p
+			       (setq r (registerv-data (get-register r))))
+			      (eq current (undo-tree-register-data-node r)))
+			 ;; saved state
+			 (and (or (null x) (eq x 'saved))
+			      (undo-tree-node-unmodified-p current))
+			 ))))
+    ;; update diff display, if any
+    (when diff
+      (undo-tree-visualizer-show-diff
+       (when undo-tree-visualizer-selection-mode
+	 undo-tree-visualizer-selected-node)))))
+
+
+(defun undo-tree-visualize-redo-to-x (&optional x)
+  "Redo to last branch point, register, or saved state.
+If X is the symbol `branch', redo to last branch point. If X is
+the symbol `register', redo to last register. If X is the sumbol
+`saved', redo to last saved state. If X is null, redo to first of
+these that's encountered.
+
+Interactively, a single \\[universal-argument] specifies
+`branch', a double \\[universal-argument] \\[universal-argument]
+specifies `saved', and a negative prefix argument specifies
+`register'."
+  (interactive "P")
+  (when (and (called-interactively-p 'any) x)
+    (setq x (prefix-numeric-value x)
+	  x (cond
+	     ((< x 0)  'register)
+	     ((<= x 4) 'branch)
+	     (t        'saved))))
+  (let ((current (if undo-tree-visualizer-selection-mode
+		     undo-tree-visualizer-selected-node
+		   (undo-tree-current buffer-undo-tree)))
+	(diff undo-tree-visualizer-diff)
+	r)
+    (undo-tree-visualizer-hide-diff)
+    (while (and (undo-tree-node-next current)
+		(or (if undo-tree-visualizer-selection-mode
+			(progn
+			  (undo-tree-visualizer-select-next)
+			  (setq current undo-tree-visualizer-selected-node))
+		      (undo-tree-visualize-redo)
+		      (setq current (undo-tree-current buffer-undo-tree)))
+		    t)
+		         ;; branch point
+		(not (or (and (or (null x) (eq x 'branch))
+			      (> (undo-tree-num-branches) 1))
+			 ;; register
+			 (and (or (null x) (eq x 'register))
+			      (setq r (undo-tree-node-register current))
+			      (undo-tree-register-data-p
+			       (setq r (registerv-data (get-register r))))
+			      (eq current (undo-tree-register-data-node r)))
+			 ;; saved state
+			 (and (or (null x) (eq x 'saved))
+			      (undo-tree-node-unmodified-p current))
+			 ))))
+    ;; update diff display, if any
+    (when diff
+      (undo-tree-visualizer-show-diff
+       (when undo-tree-visualizer-selection-mode
+	 undo-tree-visualizer-selected-node)))))
+
+
+(defun undo-tree-visualizer-toggle-timestamps ()
+  "Toggle display of time-stamps."
+  (interactive)
+  (setq undo-tree-visualizer-timestamps (not undo-tree-visualizer-timestamps))
+  (setq undo-tree-visualizer-spacing (undo-tree-visualizer-calculate-spacing))
+  ;; redraw tree
+  (let ((inhibit-read-only t)) (undo-tree-draw-tree buffer-undo-tree)))
+
+
+(defun undo-tree-visualizer-scroll-left (&optional arg)
+  (interactive "p")
+  (scroll-left (or arg 1) t))
+
+
+(defun undo-tree-visualizer-scroll-right (&optional arg)
+  (interactive "p")
+  (scroll-right (or arg 1) t))
+
+
+(defun undo-tree-visualizer-scroll-up (&optional arg)
+  (interactive "P")
+  (if (or (and (numberp arg) (< arg 0)) (eq arg '-))
+      (undo-tree-visualizer-scroll-down arg)
+    ;; scroll up and expand newly-visible portion of tree
+    (unwind-protect
+	(scroll-up-command arg)
+      (undo-tree-expand-down
+       (nth (undo-tree-node-branch (undo-tree-current buffer-undo-tree))
+	    (undo-tree-node-next (undo-tree-current buffer-undo-tree)))))
+    ;; signal error if at eob
+    (when (and (not undo-tree-visualizer-needs-extending-down) (eobp))
+      (scroll-up))))
+
+
+(defun undo-tree-visualizer-scroll-down (&optional arg)
+  (interactive "P")
+  (if (or (and (numberp arg) (< arg 0)) (eq arg '-))
+      (undo-tree-visualizer-scroll-up arg)
+    ;; ensure there's enough room at top of buffer to scroll
+    (let ((scroll-lines
+	   (or arg (- (window-height) next-screen-context-lines)))
+	  (window-line (1- (line-number-at-pos (window-start)))))
+      (when (and undo-tree-visualizer-needs-extending-up
+		 (< window-line scroll-lines))
+	(let ((inhibit-read-only t))
+	  (goto-char (point-min))
+	  (undo-tree-move-up (- scroll-lines window-line)))))
+    ;; scroll down and expand newly-visible portion of tree
+    (unwind-protect
+	(scroll-down-command arg)
+      (undo-tree-expand-up
+       (undo-tree-node-previous (undo-tree-current buffer-undo-tree))))
+    ;; signal error if at bob
+    (when (and (not undo-tree-visualizer-needs-extending-down) (bobp))
+      (scroll-down))))
+
+
+
+
+;;; =====================================================================
+;;;                    Visualizer selection mode
+
+(define-minor-mode undo-tree-visualizer-selection-mode
+  "Toggle mode to select nodes in undo-tree visualizer."
+  :lighter "Select"
+  :keymap undo-tree-visualizer-selection-mode-map
+  :group undo-tree
+  (cond
+   ;; enable selection mode
+   (undo-tree-visualizer-selection-mode
+    (setq cursor-type 'box)
+    (setq undo-tree-visualizer-selected-node
+	  (undo-tree-current buffer-undo-tree))
+    ;; erase diff (if any), as initially selected node is identical to current
+    (when undo-tree-visualizer-diff
+      (let ((buff (get-buffer undo-tree-diff-buffer-name))
+	    (inhibit-read-only t))
+	(when buff (with-current-buffer buff (erase-buffer))))))
+   (t ;; disable selection mode
+    (setq cursor-type nil)
+    (setq undo-tree-visualizer-selected-node nil)
+    (goto-char (undo-tree-node-marker (undo-tree-current buffer-undo-tree)))
+    (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff)))
+   ))
+
+
+(defun undo-tree-visualizer-select-previous (&optional arg)
+  "Move to previous node."
+  (interactive "p")
+  (let ((node undo-tree-visualizer-selected-node))
+    (catch 'top
+      (dotimes (i (or arg 1))
+	(unless (undo-tree-node-previous node) (throw 'top t))
+	(setq node (undo-tree-node-previous node))))
+    ;; when using lazy drawing, extend tree upwards as required
+    (when undo-tree-visualizer-lazy-drawing
+      (undo-tree-expand-up undo-tree-visualizer-selected-node node))
+    ;; update diff display, if any
+    (when (and undo-tree-visualizer-diff
+	       (not (eq node undo-tree-visualizer-selected-node)))
+      (undo-tree-visualizer-update-diff node))
+    ;; move to selected node
+    (goto-char (undo-tree-node-marker node))
+    (setq undo-tree-visualizer-selected-node node)))
+
+
+(defun undo-tree-visualizer-select-next (&optional arg)
+  "Move to next node."
+  (interactive "p")
+  (let ((node undo-tree-visualizer-selected-node))
+    (catch 'bottom
+      (dotimes (i (or arg 1))
+	(unless (nth (undo-tree-node-branch node) (undo-tree-node-next node))
+	  (throw 'bottom t))
+	(setq node
+	      (nth (undo-tree-node-branch node) (undo-tree-node-next node)))))
+    ;; when using lazy drawing, extend tree downwards as required
+    (when undo-tree-visualizer-lazy-drawing
+      (undo-tree-expand-down undo-tree-visualizer-selected-node node))
+    ;; update diff display, if any
+    (when (and undo-tree-visualizer-diff
+	       (not (eq node undo-tree-visualizer-selected-node)))
+      (undo-tree-visualizer-update-diff node))
+    ;; move to selected node
+    (goto-char (undo-tree-node-marker node))
+    (setq undo-tree-visualizer-selected-node node)))
+
+
+(defun undo-tree-visualizer-select-right (&optional arg)
+  "Move right to a sibling node."
+  (interactive "p")
+  (let ((node undo-tree-visualizer-selected-node)
+	end)
+    (goto-char (undo-tree-node-marker undo-tree-visualizer-selected-node))
+    (setq end (line-end-position))
+    (catch 'end
+      (dotimes (i arg)
+	(while (or (null node) (eq node undo-tree-visualizer-selected-node))
+	  (forward-char)
+	  (setq node (get-text-property (point) 'undo-tree-node))
+	  (when (= (point) end) (throw 'end t)))))
+    (goto-char (undo-tree-node-marker
+		(or node undo-tree-visualizer-selected-node)))
+    (when (and undo-tree-visualizer-diff node
+	       (not (eq node undo-tree-visualizer-selected-node)))
+      (undo-tree-visualizer-update-diff node))
+    (when node (setq undo-tree-visualizer-selected-node node))))
+
+
+(defun undo-tree-visualizer-select-left (&optional arg)
+  "Move left to a sibling node."
+  (interactive "p")
+  (let ((node (get-text-property (point) 'undo-tree-node))
+	beg)
+    (goto-char (undo-tree-node-marker undo-tree-visualizer-selected-node))
+    (setq beg (line-beginning-position))
+    (catch 'beg
+      (dotimes (i arg)
+	(while (or (null node) (eq node undo-tree-visualizer-selected-node))
+	  (backward-char)
+	  (setq node (get-text-property (point) 'undo-tree-node))
+	  (when (= (point) beg) (throw 'beg t)))))
+    (goto-char (undo-tree-node-marker
+		(or node undo-tree-visualizer-selected-node)))
+    (when (and undo-tree-visualizer-diff node
+	       (not (eq node undo-tree-visualizer-selected-node)))
+      (undo-tree-visualizer-update-diff node))
+    (when node (setq undo-tree-visualizer-selected-node node))))
+
+
+(defun undo-tree-visualizer-select (pos)
+  (let ((node (get-text-property pos 'undo-tree-node)))
+    (when node
+      ;; select node at POS
+      (goto-char (undo-tree-node-marker node))
+      ;; when using lazy drawing, extend tree up and down as required
+      (when undo-tree-visualizer-lazy-drawing
+	(undo-tree-expand-up undo-tree-visualizer-selected-node node)
+	(undo-tree-expand-down undo-tree-visualizer-selected-node node))
+      ;; update diff display, if any
+      (when (and undo-tree-visualizer-diff
+		 (not (eq node undo-tree-visualizer-selected-node)))
+	(undo-tree-visualizer-update-diff node))
+      ;; update selected node
+      (setq undo-tree-visualizer-selected-node node)
+      )))
+
+
+(defun undo-tree-visualizer-mouse-select (pos)
+  "Select undo tree node at mouse event POS."
+  (interactive "@e")
+  (undo-tree-visualizer-select (event-start (nth 1 pos))))
+
+
+
+
+;;; =====================================================================
+;;;                      Visualizer diff display
+
+(defun undo-tree-visualizer-toggle-diff ()
+  "Toggle diff display in undo-tree visualizer."
+  (interactive)
+  (if undo-tree-visualizer-diff
+      (undo-tree-visualizer-hide-diff)
+    (undo-tree-visualizer-show-diff)))
+
+
+(defun undo-tree-visualizer-selection-toggle-diff ()
+  "Toggle diff display in undo-tree visualizer selection mode."
+  (interactive)
+  (if undo-tree-visualizer-diff
+      (undo-tree-visualizer-hide-diff)
+    (let ((node (get-text-property (point) 'undo-tree-node)))
+      (when node (undo-tree-visualizer-show-diff node)))))
+
+
+(defun undo-tree-visualizer-show-diff (&optional node)
+  ;; show visualizer diff display
+  (setq undo-tree-visualizer-diff t)
+  (let ((buff (with-current-buffer undo-tree-visualizer-parent-buffer
+		(undo-tree-diff node)))
+	(display-buffer-mark-dedicated 'soft)
+	win)
+    (setq win (split-window))
+    (set-window-buffer win buff)
+    (shrink-window-if-larger-than-buffer win)))
+
+
+(defun undo-tree-visualizer-hide-diff ()
+  ;; hide visualizer diff display
+  (setq undo-tree-visualizer-diff nil)
+  (let ((win (get-buffer-window undo-tree-diff-buffer-name)))
+    (when win (with-selected-window win (kill-buffer-and-window)))))
+
+
+(defun undo-tree-diff (&optional node)
+  ;; Create diff between NODE and current state (or previous state and current
+  ;; state, if NODE is null). Returns buffer containing diff.
+  (let (tmpfile buff)
+    ;; generate diff
+    (let ((undo-tree-inhibit-kill-visualizer t)
+	  (current (undo-tree-current buffer-undo-tree)))
+      (undo-tree-set (or node (undo-tree-node-previous current) current)
+		     'preserve-timestamps)
+      (setq tmpfile (diff-file-local-copy (current-buffer)))
+      (undo-tree-set current 'preserve-timestamps))
+    (setq buff (diff-no-select
+		tmpfile (current-buffer) nil 'noasync
+		(get-buffer-create undo-tree-diff-buffer-name)))
+    ;; delete process messages and useless headers from diff buffer
+    (let ((inhibit-read-only t))
+      (with-current-buffer buff
+	(goto-char (point-min))
+	(delete-region (point) (1+ (line-end-position 3)))
+	(goto-char (point-max))
+	(forward-line -2)
+	(delete-region (point) (point-max))
+	(setq cursor-type nil)
+	(setq buffer-read-only t)))
+    buff))
+
+
+(defun undo-tree-visualizer-update-diff (&optional node)
+  ;; update visualizer diff display to show diff between current state and
+  ;; NODE (or previous state, if NODE is null)
+  (with-current-buffer undo-tree-visualizer-parent-buffer
+    (undo-tree-diff node))
+  (let ((win (get-buffer-window undo-tree-diff-buffer-name)))
+    (when win
+      (balance-windows)
+      (shrink-window-if-larger-than-buffer win))))
+
+;;;; ChangeLog:
+
+;; 2013-12-28  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	* undo-tree: Update to version 0.6.5.
+;; 
+;; 2012-12-05  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	Update undo-tree to version 0.6.3
+;; 
+;; 	* undo-tree.el: Implement lazy tree drawing to significantly speed up 
+;; 	visualization of large trees + various more minor improvements.
+;; 
+;; 2012-09-25  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	Updated undo-tree package to version 0.5.5.
+;; 
+;; 	Small bug-fix to avoid hooks triggering an error when trying to save
+;; 	undo history in a buffer where undo is disabled.
+;; 
+;; 2012-09-11  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	Updated undo-tree package to version 0.5.4
+;; 
+;; 	Bug-fixes and improvements to persistent history storage.
+;; 
+;; 2012-07-18  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	Update undo-tree to version 0.5.3
+;; 
+;; 	* undo-tree.el: Cope gracefully with undo boundaries being deleted
+;; 	 (cf. bug#11774). Allow customization of directory to which undo
+;; 	history is
+;; 	 saved.
+;; 
+;; 2012-05-24  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	updated undo-tree package to version 0.5.2
+;; 
+;; 	* undo-tree.el: add diff view feature in undo-tree visualizer.
+;; 
+;; 2012-05-02  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	undo-tree.el: Update package to version 0.4
+;; 
+;; 2012-04-20  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	undo-tree.el: Update package to version 0.3.4
+;; 
+;; 	* undo-tree.el (undo-list-pop-changeset): fix pernicious bug causing
+;; 	undo history to be lost.
+;; 	(buffer-undo-tree): set permanent-local property.
+;; 	(undo-tree-enable-undo-in-region): add new customization option
+;; 	allowing undo-in-region to be disabled.
+;; 
+;; 2012-01-26  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	undo-tree.el: Fixed copyright attribution and Emacs status.
+;; 
+;; 2012-01-26  Toby S. Cubitt  <tsc25@cantab.net>
+;; 
+;; 	undo-tree.el: Update package to version 0.3.3
+;; 
+;; 2011-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+;; 
+;; 	Add undo-tree.el
+;; 
+
+
+
+
+(provide 'undo-tree)
+
+;;; undo-tree.el ends here
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/ChangeLog
+++ /dev/null
@@ -1,12 +0,0 @@
-2012-09-24  Chong Yidong  <cyd@gnu.org>
-
-	Add missing file yasnippet-pkg.el
-
-2012-09-24  Chong Yidong  <cyd@gnu.org>
-
-	Add README file for yasnippet.
-
-2012-09-24  Chong Yidong  <cyd@gnu.org>
-
-	Add yasnippet.
-
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/dropdown-list.el
+++ /dev/null
@@ -1,253 +0,0 @@
-;;; dropdown-list.el --- Drop-down menu interface
-;;
-;; Filename: dropdown-list.el
-;; Description: Drop-down menu interface
-;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
-;; Author: Jaeyoun Chung [jay.chung@gmail.com]
-;; Maintainer:
-;; Authors: pluskid <pluskid@gmail.com>,  João Távora <joaotavora@gmail.com>
-;; Created: Sun Mar 16 11:20:45 2008 (Pacific Daylight Time)
-;; Version:
-;; Last-Updated: Sun Mar 16 12:19:49 2008 (Pacific Daylight Time)
-;;           By: dradams
-;;     Update #: 43
-;; URL: http://www.emacswiki.org/cgi-bin/wiki/dropdown-list.el
-;; Keywords: convenience menu
-;; Compatibility: GNU Emacs 21.x, GNU Emacs 22.x
-;;
-;; Features that might be required by this library:
-;;
-;;   `cl'.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Commentary:
-;;
-;;  According to Jaeyoun Chung, "overlay code stolen from company-mode.el."
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Change log:
-;;
-;; 2008/03/16 dadams
-;;     Clean-up - e.g. use char-to-string for control chars removed by email posting.
-;;     Moved example usage code (define-key*, command-selector) inside the library.
-;;     Require cl.el at byte-compile time.
-;;     Added GPL statement.
-;; 2008/01/06 Jaeyoun Chung
-;;     Posted to gnu-emacs-sources@gnu.org at 9:10 p.m.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; This program is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Code:
-
-(eval-when-compile (require 'cl)) ;; decf, fourth, incf, loop, mapcar*
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defface dropdown-list-face
-  '((t :inherit default :background "lightyellow" :foreground "black"))
-  "*Bla." :group 'dropdown-list)
-
-(defface dropdown-list-selection-face
-  '((t :inherit dropdown-list-face :background "purple"))
-  "*Bla." :group 'dropdown-list)
-
-(defvar dropdown-list-overlays nil)
-
-(defun dropdown-list-hide ()
-  (while dropdown-list-overlays
-    (delete-overlay (pop dropdown-list-overlays))))
-
-(defun dropdown-list-put-overlay (beg end &optional prop value prop2 value2)
-  (let ((ov (make-overlay beg end)))
-    (overlay-put ov 'window t)
-    (when prop
-      (overlay-put ov prop value)
-      (when prop2 (overlay-put ov prop2 value2)))
-    ov))
-
-(defun dropdown-list-line (start replacement &optional no-insert)
-  ;; start might be in the middle of a tab, which means we need to hide the
-  ;; tab and add spaces
-  (let ((end (+ start (length replacement)))
-        beg-point end-point
-        before-string after-string)
-    (goto-char (point-at-eol))
-    (if (< (current-column) start)
-        (progn (setq before-string (make-string (- start (current-column)) ? ))
-               (setq beg-point (point)))
-      (goto-char (point-at-bol)) ;; Emacs bug, move-to-column is wrong otherwise
-      (move-to-column start)
-      (setq beg-point (point))
-      (when (> (current-column) start)
-        (goto-char (1- (point)))
-        (setq beg-point (point))
-        (setq before-string (make-string (- start (current-column)) ? ))))
-    (move-to-column end)
-    (setq end-point (point))
-    (let ((end-offset (- (current-column) end)))
-      (when (> end-offset 0) (setq after-string (make-string end-offset ?b))))
-    (when no-insert
-      ;; prevent inheriting of faces
-      (setq before-string (when before-string (propertize before-string 'face 'default)))
-      (setq after-string (when after-string (propertize after-string 'face 'default))))
-    (let ((string (concat before-string replacement after-string)))
-      (if no-insert
-          string
-        (push (dropdown-list-put-overlay beg-point end-point 'invisible t
-                                         'after-string string)
-              dropdown-list-overlays)))))
-
-(defun dropdown-list-start-column (display-width)
-  (let ((column (mod (current-column) (window-width)))
-        (width (window-width)))
-    (cond ((<= (+ column display-width) width) column)
-          ((> column display-width) (- column display-width))
-          ((>= width display-width) (- width display-width))
-          (t nil))))
-
-(defun dropdown-list-move-to-start-line (candidate-count)
-  (decf candidate-count)
-  (let ((above-line-count (save-excursion (- (vertical-motion (- candidate-count)))))
-        (below-line-count (save-excursion (vertical-motion candidate-count))))
-    (cond ((= below-line-count candidate-count)
-           t)
-          ((= above-line-count candidate-count)
-           (vertical-motion (- candidate-count))
-           t)
-          ((>= (+ below-line-count above-line-count) candidate-count)
-           (vertical-motion (- (- candidate-count below-line-count)))
-           t)
-          (t nil))))
-
-(defun dropdown-list-at-point (candidates &optional selidx)
-  (dropdown-list-hide)
-  (let* ((lengths (mapcar #'length candidates))
-         (max-length (apply #'max lengths))
-         (start (dropdown-list-start-column (+ max-length 3)))
-         (i -1)
-         (candidates (mapcar* (lambda (candidate length)
-                                (let ((diff (- max-length length)))
-                                  (propertize
-                                   (concat (if (> diff 0)
-                                               (concat candidate (make-string diff ? ))
-                                             (substring candidate 0 max-length))
-                                           (format "%3d" (+ 2 i)))
-                                   'face (if (eql (incf i) selidx)
-                                             'dropdown-list-selection-face
-                                           'dropdown-list-face))))
-                              candidates
-                              lengths)))
-    (save-excursion
-      (and start
-           (dropdown-list-move-to-start-line (length candidates))
-           (loop initially (vertical-motion 0)
-                 for candidate in candidates
-                 do (dropdown-list-line (+ (current-column) start) candidate)
-                 while (/= (vertical-motion 1) 0)
-                 finally return t)))))
-
-(defun dropdown-list (candidates)
-  (let ((selection)
-        (temp-buffer))
-    (save-window-excursion
-      (unwind-protect
-          (let ((candidate-count (length candidates))
-                done key (selidx 0))
-            (while (not done)
-              (unless (dropdown-list-at-point candidates selidx)
-                (switch-to-buffer (setq temp-buffer (get-buffer-create "*selection*"))
-                                  'norecord)
-                (delete-other-windows)
-                (delete-region (point-min) (point-max))
-                (insert (make-string (length candidates) ?\n))
-                (goto-char (point-min))
-                (dropdown-list-at-point candidates selidx))
-              (setq key (read-key-sequence ""))
-              (cond ((and (stringp key)
-                          (>= (aref key 0) ?1)
-                          (<= (aref key 0) (+ ?0 (min 9 candidate-count))))
-                     (setq selection (- (aref key 0) ?1)
-                           done      t))
-                    ((member key `(,(char-to-string ?\C-p) [up] "p"))
-                     (setq selidx (mod (+ candidate-count (1- (or selidx 0)))
-                                       candidate-count)))
-                    ((member key `(,(char-to-string ?\C-n) [down] "n"))
-                     (setq selidx (mod (1+ (or selidx -1)) candidate-count)))
-                    ((member key `(,(char-to-string ?\f))))
-                    ((member key `(,(char-to-string ?\r) [return]))
-                     (setq selection selidx
-                           done      t))
-                    (t (setq done t)))))
-        (dropdown-list-hide)
-        (and temp-buffer (kill-buffer temp-buffer)))
-      ;;     (when selection
-      ;;       (message "your selection => %d: %s" selection (nth selection candidates))
-      ;;       (sit-for 1))
-      selection)))
-
-(defun define-key* (keymap key command)
-  "Add COMMAND to the multiple-command binding of KEY in KEYMAP.
-Use multiple times to bind different COMMANDs to the same KEY."
-  (define-key keymap key (combine-command command (lookup-key keymap key))))
-
-(defun combine-command (command defs)
-  "$$$$$ FIXME - no doc string"
-  (cond ((null defs) command)
-        ((and (listp defs)
-              (eq 'lambda (car defs))
-              (= (length defs) 4)
-              (listp (fourth defs))
-              (eq 'command-selector (car (fourth defs))))
-         (unless (member `',command (cdr (fourth defs)))
-           (setcdr (fourth defs) (nconc (cdr (fourth defs)) `(',command))))
-         defs)
-        (t
-         `(lambda () (interactive) (command-selector ',defs ',command)))))
-
-(defvar command-selector-last-command nil "$$$$$ FIXME - no doc string")
-
-(defun command-selector (&rest candidates)
-  "$$$$$ FIXME - no doc string"
-  (if (and (eq last-command this-command) command-selector-last-command)
-      (call-interactively command-selector-last-command)
-    (let* ((candidate-strings
-            (mapcar (lambda (candidate)
-                      (format "%s" (if (symbolp candidate)
-                                       candidate
-                                     (let ((s (format "%s" candidate)))
-                                       (if (>= (length s) 7)
-                                           (concat (substring s 0 7) "...")
-                                         s)))))
-                    candidates))
-           (selection (dropdown-list candidate-strings)))
-      (when selection
-        (let ((cmd (nth selection candidates)))
-          (call-interactively cmd)
-          (setq command-selector-last-command cmd))))))
-
-;;;;;;;;;;;;;;;;;;;;
-
-(provide 'dropdown-list)
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; dropdown-list.el ends here
-;; Local Variables:
-;; coding: utf-8
-;; End:
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/c++-mode/ns
+++ /dev/null
@@ -1,4 +0,0 @@
-# name: namespace ...
-# key: ns
-# --
-namespace 
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/c++-mode/using
+++ /dev/null
@@ -1,5 +0,0 @@
-# name: using namespace ... 
-# key: using
-# --
-using namespace ${std};
-$0
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/c-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-cc-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/cc-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/csharp-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-cc-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/css-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/f.yasnippet
+++ /dev/null
@@ -1,5 +0,0 @@
-# contributor: Xah Lee (XahLee.org)
-# name: format
-# key: format
-# --
-(format "$0" &optional OBJECTS)
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/erlang-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/f90-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/f90-mode/ii
+++ /dev/null
@@ -1,5 +0,0 @@
-# contributor: Li Zhu <http://www.zhuli.name>
-# name: implicit integer 
-# key: ii
-# --
-implicit integer $0
\ No newline at end of file
deleted file mode 100644
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/html-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/html-mode/div
+++ /dev/null
@@ -1,4 +0,0 @@
-# name: <div...>...</div>
-# key: div
-# --
-<div${1: id="${2:some_id}"}${3: class="${4:some_class}"}>$0</div> 
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/html-mode/script.javascript
+++ /dev/null
@@ -1,7 +0,0 @@
-# contributor: Jimmy Wu <frozenthrone88@gmail.com>
-#name :<script type="text/javascript">...</script> 
-# key: script
-# --
-<script type="text/javascript">
-  $0
-</script>
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/html-mode/script.javascript-src
+++ /dev/null
@@ -1,5 +0,0 @@
-# contributor: Jimmy Wu <frozenthrone88@gmail.com>
-#name :<script type="text/javascript" src="..."></script> 
-# key: script
-# --
-<script type="text/javascript" src="$1"></script>
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/latex-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/markdown-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/nxml-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/objc-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-cc-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/perl-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/python-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/rst-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/zip
+++ /dev/null
@@ -1,4 +0,0 @@
-#name : zip(...) { |...| ... }
-# key: collectionszip
-# --
-zip(${enums}) { |${row}| $0 }
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/asof
+++ /dev/null
@@ -1,5 +0,0 @@
-# Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: asInstanceOf[T] 
-# key: asof
-# --
-asInstanceOf[${1:type}] $0
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/case
+++ /dev/null
@@ -1,5 +0,0 @@
-# Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: case pattern => 
-# key: case
-# --
-case ${1:pattern} => $0
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/cast
+++ /dev/null
@@ -1,5 +0,0 @@
-# Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: asInstanceOf[T] 
-# key: cast
-# --
-asInstanceOf[${1:type}] $0
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/isof
+++ /dev/null
@@ -1,5 +0,0 @@
-# Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: isInstanceOf[T] 
-# key: isof
-# --
-isInstanceOf[${1:type}] $0
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/match.can
+++ /dev/null
@@ -1,12 +0,0 @@
-# Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: can match { case Full(res) => .. }
-# key: match
-# --
-${1:option} match {
-  case Full(res) => $0
-
-  case Empty => 
-
-  case Failure(msg, _, _) => 
-
-}
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/snippet-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/sql-mode/.yas-parents
+++ /dev/null
@@ -1,1 +0,0 @@
-text-mode
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/sql-mode/constraint
+++ /dev/null
@@ -1,5 +0,0 @@
-# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
-# name: CONSTRAINT [..] PRIMARY KEY ...
-# key: constraint
-# --
-CONSTRAINT [${1:PK_Name}] PRIMARY KEY ${2:CLUSTERED} ([${3:ColumnName}]) 
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/sql-mode/constraint.1
+++ /dev/null
@@ -1,5 +0,0 @@
-# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
-# name: CONSTRAINT [..] FOREIGN KEY ...
-# key: constraint
-# --
-CONSTRAINT [${1:FK_Name}] FOREIGN KEY ${2:CLUSTERED} ([${3:ColumnName}]) 
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/snippets/sql-mode/create
+++ /dev/null
@@ -1,11 +0,0 @@
-# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
-# name: create table ...
-# key: create
-# --
-CREATE TABLE [${1:dbo}].[${2:TableName}] 
-(
-		${3:Id}		${4:INT IDENTITY(1,1)}		${5:NOT NULL}
-$0
-	CONSTRAINT [${6:PK_}] PRIMARY KEY ${7:CLUSTERED} ([$3]) 
-)
-GO
\ No newline at end of file
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/yasnippet-autoloads.el
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; yasnippet-autoloads.el --- automatically extracted autoloads
-;;
-;;; Code:
-
-
-;;;### (autoloads (yas-global-mode yas-minor-mode) "yasnippet" "yasnippet.el"
-;;;;;;  (21577 27260 926494 998000))
-;;; Generated autoloads from yasnippet.el
-
-(autoload 'yas-minor-mode "yasnippet" "\
-Toggle YASnippet mode.
-
-When YASnippet mode is enabled, the `yas-trigger-key' key expands
-snippets of code depending on the major mode.
-
-With no argument, this command toggles the mode.
-positive prefix argument turns on the mode.
-Negative prefix argument turns off the mode.
-
-You can customize the key through `yas-trigger-key'.
-
-Key bindings:
-\\{yas-minor-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(defvar yas-global-mode nil "\
-Non-nil if Yas-Global mode is enabled.
-See the command `yas-global-mode' for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `yas-global-mode'.")
-
-(custom-autoload 'yas-global-mode "yasnippet" nil)
-
-(autoload 'yas-global-mode "yasnippet" "\
-Toggle Yas minor mode in all buffers.
-With prefix ARG, enable Yas-Global mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Yas minor mode is enabled in all buffers where
-`yas-minor-mode-on' would do it.
-See `yas-minor-mode' for more information on Yas minor mode.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-
-;;;### (autoloads nil nil ("dropdown-list.el" "yasnippet-pkg.el")
-;;;;;;  (21577 27284 13157 354000))
-
-;;;***
-
-(provide 'yasnippet-autoloads)
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; coding: utf-8
-;; End:
-;;; yasnippet-autoloads.el ends here
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/yasnippet-pkg.el
+++ /dev/null
@@ -1,3 +0,0 @@
-(define-package "yasnippet"
-                "0.8.0"
-                "A template system for Emacs")
deleted file mode 100644
--- a/elpa/yasnippet-0.8.0/yasnippet.el
+++ /dev/null
@@ -1,4490 +0,0 @@
-;;; yasnippet.el --- Yet another snippet extension for Emacs.
-
-;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
-;; Authors: pluskid <pluskid@gmail.com>,  João Távora <joaotavora@gmail.com>
-;; Version: 0.8.0
-;; Package-version: 0.8.0
-;; X-URL: http://github.com/capitaomorte/yasnippet
-;; Keywords: convenience, emulation
-;; URL: http://github.com/capitaomorte/yasnippet
-;; EmacsWiki: YaSnippetMode
-
-;; This program is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;;   Basic steps to setup:
-;;
-;;    (add-to-list 'load-path
-;;                 "~/path-to-yasnippet")
-;;    (require 'yasnippet)
-;;    (yas-global-mode 1)
-;;
-;;
-;;   Interesting variables are:
-;;
-;;       `yas-snippet-dirs'
-;;
-;;           The directory where user-created snippets are to be
-;;           stored. Can also be a list of directories. In that case,
-;;           when used for bulk (re)loading of snippets (at startup or
-;;           via `yas-reload-all'), directories appearing earlier in
-;;           the list shadow other dir's snippets. Also, the first
-;;           directory is taken as the default for storing the user's
-;;           new snippets.
-;;
-;;           The deprecated `yas/root-directory' aliases this variable
-;;           for backward-compatibility.
-;;
-;;       `yas-extra-modes'
-;;
-;;           A local variable that you can set in a hook to override
-;;           snippet-lookup based on major mode. It is a a symbol (or
-;;           list of symbols) that correspond to subdirectories of
-;;           `yas-snippet-dirs' and is used for deciding which
-;;           snippets to consider for the active buffer.
-;;
-;;           Deprecated `yas/mode-symbol' aliases this variable for
-;;           backward-compatibility.
-;;
-;;   Major commands are:
-;;
-;;       M-x yas-expand
-;;
-;;           Try to expand snippets before point.  In `yas-minor-mode',
-;;           this is bound to `yas-trigger-key' which you can customize.
-;;
-;;       M-x yas-load-directory
-;;
-;;           Prompts you for a directory hierarchy of snippets to load.
-;;
-;;       M-x yas-insert-snippet
-;;
-;;           Prompts you for possible snippet expansion if that is
-;;           possible according to buffer-local and snippet-local
-;;           expansion conditions.  With prefix argument, ignore these
-;;           conditions.
-;;
-;;       M-x yas-visit-snippet-file
-;;
-;;           Prompts you for possible snippet expansions like
-;;           `yas-insert-snippet', but instead of expanding it, takes
-;;           you directly to the snippet definition's file, if it
-;;           exists.
-;;
-;;       M-x yas-new-snippet
-;;
-;;           Lets you create a new snippet file in the correct
-;;           subdirectory of `yas-snippet-dirs', according to the
-;;           active major mode.
-;;
-;;       M-x yas-load-snippet-buffer
-;;
-;;           When editing a snippet, this loads the snippet.  This is
-;;           bound to "C-c C-c" while in the `snippet-mode' editing
-;;           mode.
-;;
-;;       M-x yas-tryout-snippet
-;;
-;;           When editing a snippet, this opens a new empty buffer,
-;;           sets it to the appropriate major mode and inserts the
-;;           snippet there, so you can see what it looks like.  This is
-;;           bound to "C-c C-t" while in `snippet-mode'.
-;;
-;;       M-x yas-describe-tables
-;;
-;;           Lists known snippets in a separate buffer. User is
-;;           prompted as to whether only the currently active tables
-;;           are to be displayed, or all the tables for all major
-;;           modes.
-;;
-;;   The `dropdown-list.el' extension is bundled with YASnippet, you
-;;   can optionally use it the preferred "prompting method", puting in
-;;   your .emacs file, for example:
-;;
-;;       (require 'dropdown-list)
-;;       (setq yas-prompt-functions '(yas-dropdown-prompt
-;;                                    yas-ido-prompt
-;;                                    yas-completing-prompt))
-;;
-;;   Also check out the customization group
-;;
-;;        M-x customize-group RET yasnippet RET
-;;
-;;   If you use the customization group to set variables
-;;   `yas-snippet-dirs' or `yas-global-mode', make sure the path to
-;;   "yasnippet.el" is present in the `load-path' *before* the
-;;   `custom-set-variables' is executed in your .emacs file.
-;;
-;;   For more information and detailed usage, refer to the project page:
-;;      http://github.com/capitaomorte/yasnippet
-
-;;; Code:
-
-(require 'cl)
-(require 'easymenu)
-(require 'help-mode)
-
-
-;;; User customizable variables
-
-(defgroup yasnippet nil
-  "Yet Another Snippet extension"
-  :group 'editing)
-
-(defvar yas--load-file-name load-file-name
-  "Store the filename that yasnippet.el was originally loaded from.")
-
-(defcustom yas-snippet-dirs (remove nil
-                                    (list "~/.emacs.d/snippets"
-                                          (when yas--load-file-name
-                                            (concat (file-name-directory yas--load-file-name) "snippets"))))
-  "Directory or list of snippet dirs for each major mode.
-
-The directory where user-created snippets are to be stored. Can
-also be a list of directories. In that case, when used for
-bulk (re)loading of snippets (at startup or via
-`yas-reload-all'), directories appearing earlier in the list
-shadow other dir's snippets. Also, the first directory is taken
-as the default for storing the user's new snippets."
-  :type '(choice (string :tag "Single directory (string)")
-                 (repeat :args (string) :tag "List of directories (strings)"))
-  :group 'yasnippet
-  :require 'yasnippet
-  :set #'(lambda (symbol new)
-           (let ((old (and (boundp symbol)
-                           (symbol-value symbol))))
-             (set-default symbol new)
-             (unless (or (not (fboundp 'yas-reload-all))
-                         (equal old new))
-               (yas-reload-all)))))
-
-(defun yas-snippet-dirs ()
-  "Returns `yas-snippet-dirs' (which see) as a list."
-  (if (listp yas-snippet-dirs) yas-snippet-dirs (list yas-snippet-dirs)))
-
-(defvaralias 'yas/root-directory 'yas-snippet-dirs)
-
-(defcustom yas-prompt-functions '(yas-x-prompt
-                                  yas-dropdown-prompt
-                                  yas-completing-prompt
-                                  yas-ido-prompt
-                                  yas-no-prompt)
-  "Functions to prompt for keys, templates, etc interactively.
-
-These functions are called with the following arguments:
-
-- PROMPT: A string to prompt the user
-
-- CHOICES: a list of strings or objects.
-
-- optional DISPLAY-FN : A function that, when applied to each of
-the objects in CHOICES will return a string.
-
-The return value of any function you put here should be one of
-the objects in CHOICES, properly formatted with DISPLAY-FN (if
-that is passed).
-
-- To signal that your particular style of prompting is
-unavailable at the moment, you can also have the function return
-nil.
-
-- To signal that the user quit the prompting process, you can
-signal `quit' with
-
-  (signal 'quit \"user quit!\")."
-  :type '(repeat function)
-  :group 'yasnippet)
-
-(defcustom yas-indent-line 'auto
-  "Controls indenting applied to a recent snippet expansion.
-
-The following values are possible:
-
-- `fixed' Indent the snippet to the current column;
-
-- `auto' Indent each line of the snippet with `indent-according-to-mode'
-
-Every other value means don't apply any snippet-side indendation
-after expansion (the manual per-line \"$>\" indentation still
-applies)."
-  :type '(choice (const :tag "Nothing"  nothing)
-                 (const :tag "Fixed"    fixed)
-                 (const :tag "Auto"     auto))
-  :group 'yasnippet)
-
-(defcustom yas-also-auto-indent-first-line nil
-  "Non-nil means also auto indent first line according to mode.
-
-Naturally this is only valid when `yas-indent-line' is `auto'"
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-snippet-revival t
-  "Non-nil means re-activate snippet fields after undo/redo."
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-trigger-key "TAB"
-  "The key bound to `yas-expand' when function `yas-minor-mode' is active.
-
-Value is a string that is converted to the internal Emacs key
-representation using `read-kbd-macro'."
-  :type 'string
-  :group 'yasnippet
-  :set #'(lambda (symbol key)
-           (let ((old (and (boundp symbol)
-                           (symbol-value symbol))))
-             (set-default symbol key)
-             ;; On very first loading of this defcustom,
-             ;; `yas-trigger-key' is *not* loaded.
-             (if (fboundp 'yas--trigger-key-reload)
-                 (yas--trigger-key-reload old)))))
-
-(defcustom yas-next-field-key '("TAB" "<tab>")
-  "The key to navigate to next field when a snippet is active.
-
-Value is a string that is converted to the internal Emacs key
-representation using `read-kbd-macro'.
-
-Can also be a list of strings."
-  :type '(choice (string :tag "String")
-                 (repeat :args (string) :tag "List of strings"))
-  :group 'yasnippet
-  :set #'(lambda (symbol val)
-           (set-default symbol val)
-           (if (fboundp 'yas--init-yas-in-snippet-keymap)
-               (yas--init-yas-in-snippet-keymap))))
-
-
-(defcustom yas-prev-field-key '("<backtab>" "<S-tab>")
-  "The key to navigate to previous field when a snippet is active.
-
-Value is a string that is converted to the internal Emacs key
-representation using `read-kbd-macro'.
-
-Can also be a list of strings."
-  :type '(choice (string :tag "String")
-                 (repeat :args (string) :tag "List of strings"))
-  :group 'yasnippet
-  :set #'(lambda (symbol val)
-           (set-default symbol val)
-           (if (fboundp 'yas--init-yas-in-snippet-keymap)
-               (yas--init-yas-in-snippet-keymap))))
-
-(defcustom yas-skip-and-clear-key '("C-d" "<delete>" "<deletechar>")
-  "The key to clear the currently active field.
-
-Value is a string that is converted to the internal Emacs key
-representation using `read-kbd-macro'.
-
-Can also be a list of strings."
-  :type '(choice (string :tag "String")
-                 (repeat :args (string) :tag "List of strings"))
-  :group 'yasnippet
-  :set #'(lambda (symbol val)
-           (set-default symbol val)
-           (if (fboundp 'yas--init-yas-in-snippet-keymap)
-               (yas--init-yas-in-snippet-keymap))))
-
-(defcustom yas-triggers-in-field nil
-  "If non-nil, `yas-next-field-key' can trigger stacked expansions.
-
-Otherwise, `yas-next-field-key' just tries to move on to the next
-field"
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-fallback-behavior 'call-other-command
-  "How to act when `yas-trigger-key' does *not* expand a snippet.
-
-- `call-other-command' means try to temporarily disable YASnippet
-    and call the next command bound to `yas-trigger-key'.
-
-- nil or the symbol `return-nil' mean do nothing. (and
-  `yas-expand' returns nil)
-
-- A lisp form (apply COMMAND . ARGS) means interactively call
-  COMMAND, if ARGS is non-nil, call COMMAND non-interactively
-  with ARGS as arguments."
-  :type '(choice (const :tag "Call previous command"  call-other-command)
-                 (const :tag "Do nothing"             return-nil))
-  :group 'yasnippet)
-
-(defcustom yas-choose-keys-first nil
-  "If non-nil, prompt for snippet key first, then for template.
-
-Otherwise prompts for all possible snippet names.
-
-This affects `yas-insert-snippet' and `yas-visit-snippet-file'."
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-choose-tables-first nil
-  "If non-nil, and multiple eligible snippet tables, prompts user for tables first.
-
-Otherwise, user chooses between the merging together of all
-eligible tables.
-
-This affects `yas-insert-snippet', `yas-visit-snippet-file'"
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-use-menu 'abbreviate
-  "Display a YASnippet menu in the menu bar.
-
-When non-nil, submenus for each snippet table will be listed
-under the menu \"Yasnippet\".
-
-- If set to `abbreviate', only the current major-mode
-menu and the modes set in `yas-extra-modes' are listed.
-
-- If set to `full', every submenu is listed
-
-- It set to nil, don't display a menu at all (this requires a
-  `yas-reload-all' call if the menu is already visible).
-
-Any other non-nil value, every submenu is listed."
-  :type '(choice (const :tag "Full"  full)
-                 (const :tag "Abbreviate" abbreviate)
-                 (const :tag "No menu" nil))
-  :group 'yasnippet)
-
-(defcustom yas-trigger-symbol (if (eq window-system 'mac)
-                                  (char-to-string ?\x21E5) ;; little ->| sign
-                                  " =>")
-  "The text that will be used in menu to represent the trigger."
-  :type 'string
-  :group 'yasnippet)
-
-(defcustom yas-wrap-around-region nil
-  "If non-nil, snippet expansion wraps around selected region.
-
-The wrapping occurs just before the snippet's exit marker.  This
-can be overriden on a per-snippet basis."
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-good-grace t
-  "If non-nil, don't raise errors in inline elisp evaluation.
-
-An error string \"[yas] error\" is returned instead."
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-visit-from-menu nil
-  "If non-nil visit snippets's files from menu, instead of expanding them.
-
-This cafn only work when snippets are loaded from files."
-  :type 'boolean
-  :group 'yasnippet)
-
-(defcustom yas-expand-only-for-last-commands nil
-  "List of `last-command' values to restrict tab-triggering to, or nil.
-
-Leave this set at nil (the default) to be able to trigger an
-expansion simply by placing the cursor after a valid tab trigger,
-using whichever commands.
-
-Optionallly, set this to something like '(self-insert-command) if
-you to wish restrict expansion to only happen when the last
-letter of the snippet tab trigger was typed immediately before
-the trigger key itself."
-  :type '(repeat function)
-  :group 'yasnippet)
-
-;; Only two faces, and one of them shouldn't even be used...
-;;
-(defface yas-field-highlight-face
-  '((t (:inherit 'region)))
-  "The face used to highlight the currently active field of a snippet"
-  :group 'yasnippet)
-
-(defface yas--field-debug-face
-  '()
-  "The face used for debugging some overlays normally hidden"
-  :group 'yasnippet)
-
-
-;;; User can also customize the next defvars
-
-(defun yas--define-some-keys (keys keymap definition)
-  "Bind KEYS to DEFINITION in KEYMAP, read with `read-kbd-macro'."
-  (let ((keys (or (and (listp keys) keys)
-                  (list keys))))
-    (dolist (key keys)
-      (define-key keymap (read-kbd-macro key) definition))))
-
-(defvar yas-keymap
-  (let ((map (make-sparse-keymap)))
-    (mapc #'(lambda (binding)
-              (yas--define-some-keys (car binding) map (cdr binding)))
-          `((,yas-next-field-key     . yas-next-field-or-maybe-expand)
-            (,yas-prev-field-key     . yas-prev-field)
-            ("C-g"                   . yas-abort-snippet)
-            (,yas-skip-and-clear-key . yas-skip-and-clear-or-delete-char)))
-    map)
-  "The keymap active while a snippet expansion is in progress.")
-
-(defvar yas-key-syntaxes (list "w" "w_" "w_." "w_.()" "^ ")
-  "List of character syntaxes used to find a trigger key before point.
-The list is tried in the order while scanning characters
-backwards from point. For example, if the list is '(\"w\" \"w_\")
-first look for trigger keys which are composed exclusively of
-\"word\"-syntax characters, and then, if that fails, look for
-keys which are either of \"word\" or \"symbol\"
-syntax. Triggering after
-
-foo-bar
-
-will, according to the \"w\" element first try \"bar\". If that
-isn't a trigger key, \"foo-bar\" is tried, respecting a second
-\"w_\" element.")
-
-(defvar yas-after-exit-snippet-hook
-  '()
-  "Hooks to run after a snippet exited.
-
-The hooks will be run in an environment where some variables bound to
-proper values:
-
-`yas-snippet-beg' : The beginning of the region of the snippet.
-
-`yas-snippet-end' : Similar to beg.
-
-Attention: These hooks are not run when exiting nested/stackd snippet expansion!")
-
-(defvar yas-before-expand-snippet-hook
-  '()
-  "Hooks to run just before expanding a snippet.")
-
-(defvar yas-buffer-local-condition
-  '(if (and (or (fourth (syntax-ppss))
-                (fifth (syntax-ppss)))
-            (eq (symbol-function this-command) 'yas-expand-from-trigger-key))
-       '(require-snippet-condition . force-in-comment)
-     t)
-  "Snippet expanding condition.
-
-This variable is a lisp form which is evaluated everytime a
-snippet expansion is attemped:
-
-    * If it evaluates to nil, no snippets can be expanded.
-
-    * If it evaluates to the a cons (require-snippet-condition
-      . REQUIREMENT)
-
-       * Snippets bearing no \"# condition:\" directive are not
-         considered
-
-       * Snippets bearing conditions that evaluate to nil (or
-         produce an error) won't be onsidered.
-
-       * If the snippet has a condition that evaluates to non-nil
-         RESULT:
-
-          * If REQUIREMENT is t, the snippet is considered
-
-          * If REQUIREMENT is `eq' RESULT, the snippet is
-            considered
-
-          * Otherwise, the snippet is not considered.
-
-    * If it evaluates to the symbol 'always, all snippets are
-      considered for expansion, regardless of any conditions.
-
-    * If it evaluates to t or some other non-nil value
-
-       * Snippet bearing no conditions, or conditions that
-         evaluate to non-nil, are considered for expansion.
-
-       * Otherwise, the snippet is not considered.
-
-Here's an example preventing snippets from being expanded from
-inside comments, in `python-mode' only, with the exception of
-snippets returning the symbol 'force-in-comment in their
-conditions.
-
- (add-hook 'python-mode-hook
-           '(lambda ()
-              (setq yas-buffer-local-condition
-                    '(if (python-in-string/comment)
-                         '(require-snippet-condition . force-in-comment)
-                       t))))
-
-The default value is similar, it filters out potential snippet
-expansions inside comments and string literals, unless the
-snippet itself contains a condition that returns the symbol
-`force-in-comment'.")
-
-
-;;; Internal variables
-
-(defvar yas--version "0.8.0 (beta)")
-
-(defvar yas--menu-table (make-hash-table)
-  "A hash table of MAJOR-MODE symbols to menu keymaps.")
-
-(defvar yas--known-modes
-  '(ruby-mode rst-mode markdown-mode)
-  "A list of mode which is well known but not part of emacs.")
-
-(defvar yas--escaped-characters
-  '(?\\ ?` ?\" ?' ?$ ?} ?{ ?\( ?\))
-  "List of characters which *might* need to be escaped.")
-
-(defconst yas--field-regexp
-  "${\\([0-9]+:\\)?\\([^}]*\\)}"
-  "A regexp to *almost* recognize a field.")
-
-(defconst yas--multi-dollar-lisp-expression-regexp
-  "$+[ \t\n]*\\(([^)]*)\\)"
-  "A regexp to *almost* recognize a \"$(...)\" expression.")
-
-(defconst yas--backquote-lisp-expression-regexp
-  "`\\([^`]*\\)`"
-  "A regexp to recognize a \"`lisp-expression`\" expression." )
-
-(defconst yas--transform-mirror-regexp
-  "${\\(?:\\([0-9]+\\):\\)?$\\([ \t\n]*([^}]*\\)"
-  "A regexp to *almost* recognize a mirror with a transform.")
-
-(defconst yas--simple-mirror-regexp
-  "$\\([0-9]+\\)"
-  "A regexp to recognize a simple mirror.")
-
-(defvar yas--snippet-id-seed 0
-  "Contains the next id for a snippet.")
-
-(defun yas--snippet-next-id ()
-  (let ((id yas--snippet-id-seed))
-    (incf yas--snippet-id-seed)
-    id))
-
-
-;;; Minor mode stuff
-
-;; XXX: `last-buffer-undo-list' is somehow needed in Carbon Emacs for MacOSX
-(defvar last-buffer-undo-list nil)
-
-(defvar yas--minor-mode-menu nil
-  "Holds the YASnippet menu")
-
-(defun yas--init-minor-keymap ()
-  (let ((map (make-sparse-keymap)))
-    (when yas-use-menu
-      (easy-menu-define yas--minor-mode-menu
-      map
-      "Menu used when `yas-minor-mode' is active."
-      '("YASnippet"
-        "----"
-        ["Expand trigger" yas-expand
-         :help "Possibly expand tab trigger before point"]
-        ["Insert at point..." yas-insert-snippet
-         :help "Prompt for an expandable snippet and expand it at point"]
-        ["New snippet..." yas-new-snippet
-         :help "Create a new snippet in an appropriate directory"]
-        ["Visit snippet file..." yas-visit-snippet-file
-         :help "Prompt for an expandable snippet and find its file"]
-        "----"
-        ("Snippet menu behaviour"
-         ["Visit snippets" (setq yas-visit-from-menu t)
-          :help "Visit snippets from the menu"
-          :active t :style radio   :selected yas-visit-from-menu]
-         ["Expand snippets" (setq yas-visit-from-menu nil)
-          :help "Expand snippets from the menu"
-          :active t :style radio :selected (not yas-visit-from-menu)]
-         "----"
-         ["Show all known modes" (setq yas-use-menu 'full)
-          :help "Show one snippet submenu for each loaded table"
-          :active t :style radio   :selected (eq yas-use-menu 'full)]
-         ["Abbreviate according to current mode" (setq yas-use-menu 'abbreviate)
-          :help "Show only snippet submenus for the current active modes"
-          :active t :style radio   :selected (eq yas-use-menu 'abbreviate)])
-        ("Indenting"
-         ["Auto" (setq yas-indent-line 'auto)
-          :help "Indent each line of the snippet with `indent-according-to-mode'"
-          :active t :style radio   :selected (eq yas-indent-line 'auto)]
-         ["Fixed" (setq yas-indent-line 'fixed)
-          :help "Indent the snippet to the current column"
-          :active t :style radio   :selected (eq yas-indent-line 'fixed)]
-         ["None" (setq yas-indent-line 'none)
-          :help "Don't apply any particular snippet indentation after expansion"
-          :active t :style radio   :selected (not (member yas-indent-line '(fixed auto)))]
-         "----"
-         ["Also auto indent first line" (setq yas-also-auto-indent-first-line
-                                              (not yas-also-auto-indent-first-line))
-          :help "When auto-indenting also, auto indent the first line menu"
-          :active (eq yas-indent-line 'auto)
-          :style toggle :selected yas-also-auto-indent-first-line]
-         )
-        ("Prompting method"
-         ["System X-widget" (setq yas-prompt-functions
-                                  (cons 'yas-x-prompt
-                                        (remove 'yas-x-prompt
-                                                yas-prompt-functions)))
-          :help "Use your windowing system's (gtk, mac, windows, etc...) default menu"
-          :active t :style radio   :selected (eq (car yas-prompt-functions)
-                                                 'yas-x-prompt)]
-         ["Dropdown-list" (setq yas-prompt-functions
-                                (cons 'yas-dropdown-prompt
-                                      (remove 'yas-dropdown-prompt
-                                              yas-prompt-functions)))
-          :help "Use a special dropdown list"
-          :active t :style radio   :selected (eq (car yas-prompt-functions)
-                                                 'yas-dropdown-prompt)]
-         ["Ido" (setq yas-prompt-functions
-                      (cons 'yas-ido-prompt
-                            (remove 'yas-ido-prompt
-                                    yas-prompt-functions)))
-          :help "Use an ido-style minibuffer prompt"
-          :active t :style radio   :selected (eq (car yas-prompt-functions)
-                                                 'yas-ido-prompt)]
-         ["Completing read" (setq yas-prompt-functions
-                                  (cons 'yas-completing-prompt
-                                        (remove 'yas-completing-prompt
-                                                yas-prompt-functions)))
-          :help "Use a normal minibuffer prompt"
-          :active t :style radio   :selected (eq (car yas-prompt-functions)
-                                                 'yas-completing-prompt)]
-         )
-        ("Misc"
-         ["Wrap region in exit marker"
-          (setq yas-wrap-around-region
-                (not yas-wrap-around-region))
-          :help "If non-nil automatically wrap the selected text in the $0 snippet exit"
-          :style toggle :selected yas-wrap-around-region]
-         ["Allow stacked expansions "
-          (setq yas-triggers-in-field
-                (not yas-triggers-in-field))
-          :help "If non-nil allow snippets to be triggered inside other snippet fields"
-          :style toggle :selected yas-triggers-in-field]
-         ["Revive snippets on undo "
-          (setq yas-snippet-revival
-                (not yas-snippet-revival))
-          :help "If non-nil allow snippets to become active again after undo"
-          :style toggle :selected yas-snippet-revival]
-         ["Good grace "
-          (setq yas-good-grace
-                (not yas-good-grace))
-          :help "If non-nil don't raise errors in bad embedded eslip in snippets"
-          :style toggle :selected yas-good-grace]
-         )
-        "----"
-        ["Load snippets..."  yas-load-directory
-         :help "Load snippets from a specific directory"]
-        ["Reload everything" yas-reload-all
-         :help "Cleanup stuff, reload snippets, rebuild menus"]
-        ["About"            yas-about
-         :help "Display some information about YASsnippet"])))
-
-    ;; Now for the stuff that has direct keybindings
-    ;;
-    (define-key map "\C-c&\C-s" 'yas-insert-snippet)
-    (define-key map "\C-c&\C-n" 'yas-new-snippet)
-    (define-key map "\C-c&\C-v" 'yas-visit-snippet-file)
-    map))
-
-(defvar yas-minor-mode-map (yas--init-minor-keymap)
-  "The keymap used when `yas-minor-mode' is active.")
-
-(defun yas--trigger-key-reload (&optional unbind-key)
-  "Rebind `yas-expand' to the new value of `yas-trigger-key'.
-
-With optional UNBIND-KEY, try to unbind that key from
-`yas-minor-mode-map'."
-  (when (and unbind-key
-             (stringp unbind-key)
-             (not (string= unbind-key "")))
-    (define-key yas-minor-mode-map (read-kbd-macro unbind-key) nil))
-  (when  (and yas-trigger-key
-              (stringp yas-trigger-key)
-              (not (string= yas-trigger-key "")))
-    (define-key yas-minor-mode-map (read-kbd-macro yas-trigger-key) 'yas-expand)))
-
-(defvar yas--tables (make-hash-table)
-  "A hash table of mode symbols to `yas--table' objects.")
-
-(defvar yas--parents (make-hash-table)
-  "A hash table of mode symbols do lists of direct parent mode symbols.
-
-This list is populated when reading the \".yas-parents\" files
-found when traversing snippet directories with
-`yas-load-directory'.
-
-There might be additionalal parenting information stored in the
-`derived-mode-parent' property of some mode symbols, but that is
-not recorded here.")
-
-(defvar yas--direct-keymaps (list)
-  "Keymap alist supporting direct snippet keybindings.
-
-This variable is is placed in `emulation-mode-map-alists'.
-
-Its elements looks like (TABLE-NAME . KEYMAP). They're
-instantiated on `yas-reload-all' but KEYMAP is added to only when
-loading snippets. `yas--direct-TABLE-NAME' is then a variable set
-buffer-locally when entering `yas-minor-mode'. KEYMAP binds all
-defined direct keybindings to the command
-`yas-expand-from-keymap' which then which snippet to expand.")
-
-(defun yas-direct-keymaps-reload ()
-  "Force reload the direct keybinding for active snippet tables."
-  (interactive)
-  (setq yas--direct-keymaps nil)
-  (maphash #'(lambda (name table)
-               (push (cons (intern (format "yas--direct-%s" name))
-                           (yas--table-direct-keymap table))
-                     yas--direct-keymaps))
-           yas--tables))
-
-(defun yas--modes-to-activate ()
-  "Compute list of mode symbols that are active for `yas-expand'
-and friends."
-  (let ((modes-to-activate (list major-mode))
-        (mode major-mode))
-    (while (setq mode (get mode 'derived-mode-parent))
-      (push mode modes-to-activate))
-    (dolist (mode (yas-extra-modes))
-      (push mode modes-to-activate))
-    (remove-duplicates
-     (append modes-to-activate
-             (mapcan #'(lambda (mode)
-                         (yas--all-parents mode))
-                     modes-to-activate)))))
-
-(defvar yas-minor-mode-hook nil
-  "Hook run when yas-minor-mode is turned on")
-
-;;;###autoload
-(define-minor-mode yas-minor-mode
-  "Toggle YASnippet mode.
-
-When YASnippet mode is enabled, the `yas-trigger-key' key expands
-snippets of code depending on the major mode.
-
-With no argument, this command toggles the mode.
-positive prefix argument turns on the mode.
-Negative prefix argument turns off the mode.
-
-You can customize the key through `yas-trigger-key'.
-
-Key bindings:
-\\{yas-minor-mode-map}"
-  nil
-  ;; The indicator for the mode line.
-  " yas"
-  :group 'yasnippet
-  (cond (yas-minor-mode
-         ;; Reload the trigger key
-         ;;
-         (yas--trigger-key-reload)
-         ;; Install the direct keymaps in `emulation-mode-map-alists'
-         ;; (we use `add-hook' even though it's not technically a hook,
-         ;; but it works). Then define variables named after modes to
-         ;; index `yas--direct-keymaps'.
-         ;;
-         ;; Also install the post-command-hook.
-         ;;
-         (add-hook 'emulation-mode-map-alists 'yas--direct-keymaps)
-         (add-hook 'post-command-hook 'yas--post-command-handler nil t)
-         ;; Set the `yas--direct-%s' vars for direct keymap expansion
-         ;;
-         (dolist (mode (yas--modes-to-activate))
-           (let ((name (intern (format "yas--direct-%s" mode))))
-             (set-default name nil)
-             (set (make-local-variable name) t)))
-         ;; Perform JIT loads
-         ;;
-         (yas--load-pending-jits))
-        (t
-         ;; Uninstall the direct keymaps and the post-command hook
-         ;;
-         (remove-hook 'post-command-hook 'yas--post-command-handler t)
-         (remove-hook 'emulation-mode-map-alists 'yas--direct-keymaps))))
-
-(defvar yas--dont-activate '(minibufferp)
-  "If non-nil don't let `yas-minor-mode-on' active yas for this buffer.
-
-If a function, then its result is used.
-
-If a list of functions, then all functions must return nil to
-activate yas for this buffer.
-
-`yas-minor-mode-on' is usually called by `yas-global-mode' so
-this effectively lets you define exceptions to the \"global\"
-behaviour. Can also be a function of zero arguments.")
-(make-variable-buffer-local 'yas--dont-activate)
-
-(defun yas-minor-mode-on ()
-  "Turn on YASnippet minor mode.
-
-Do this unless `yas--dont-activate' is truish "
-  (interactive)
-  (unless (cond ((functionp yas--dont-activate)
-                 (funcall yas--dont-activate))
-                ((consp yas--dont-activate)
-                 (some #'funcall yas--dont-activate))
-                (yas--dont-activate))
-    ;; Load all snippets definitions unless we still don't have a
-    ;; root-directory or some snippets have already been loaded.
-    ;;
-    (yas-minor-mode 1)))
-
-;;;###autoload
-(define-globalized-minor-mode yas-global-mode yas-minor-mode yas-minor-mode-on
-  :group 'yasnippet
-  :require 'yasnippet)
-
-(defadvice yas-global-mode (before yas--reload-with-jit (arg) activate)
-  (cond ((and arg
-              (numberp arg)
-              (> arg 1))
-         ;; explicitly enabling
-         (yas-reload-all))
-        ((not yas-global-mode)
-         ;; toggling
-         (yas-reload-all))))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Major mode stuff
-;;
-(defvar yas--font-lock-keywords
-  (append '(("^#.*$" . font-lock-comment-face))
-          lisp-font-lock-keywords
-          lisp-font-lock-keywords-1
-          lisp-font-lock-keywords-2
-          '(("$\\([0-9]+\\)"
-             (0 font-lock-keyword-face)
-             (1 font-lock-string-face t))
-            ("${\\([0-9]+\\):?"
-             (0 font-lock-keyword-face)
-             (1 font-lock-warning-face t))
-            ("${" font-lock-keyword-face)
-            ("$[0-9]+?" font-lock-preprocessor-face)
-            ("\\(\\$(\\)" 1 font-lock-preprocessor-face)
-            ("}"
-             (0 font-lock-keyword-face)))))
-
-(defun yas--init-major-keymap ()
-  (let ((map (make-sparse-keymap)))
-    (easy-menu-define nil
-      map
-      "Menu used when snippet-mode is active."
-      (cons "Snippet"
-            (mapcar #'(lambda (ent)
-                        (when (third ent)
-                          (define-key map (third ent) (second ent)))
-                        (vector (first ent) (second ent) t))
-                    (list
-                     (list "Load this snippet" 'yas-load-snippet-buffer "\C-c\C-c")
-                     (list "Try out this snippet" 'yas-tryout-snippet "\C-c\C-t")))))
-    map))
-
-(defvar snippet-mode-map
-  (yas--init-major-keymap)
-  "The keymap used when `snippet-mode' is active")
-
-
-(define-derived-mode snippet-mode text-mode "Snippet"
-  "A mode for editing yasnippets"
-  (setq font-lock-defaults '(yas--font-lock-keywords))
-  (set (make-local-variable 'require-final-newline) nil)
-  (set (make-local-variable 'comment-start) "#")
-  (set (make-local-variable 'comment-start-skip) "#+[\t ]*"))
-
-
-
-;;; Internal structs for template management
-
-(defstruct (yas--template (:constructor yas--make-blank-template))
-  "A template for a snippet."
-  key
-  content
-  name
-  condition
-  expand-env
-  file
-  keybinding
-  uuid
-  menu-binding-pair
-  group      ;; as dictated by the #group: directive or .yas-make-groups
-  perm-group ;; as dictated by `yas-define-menu'
-  table
-  )
-
-(defun yas--populate-template (template &rest args)
-  "Helper function to populate a template with properties"
-  (let (p v)
-    (while args
-      (aset template
-            (position (intern (substring (symbol-name (car args)) 1))
-                      (mapcar #'car (get 'yas--template 'cl-struct-slots)))
-            (second args))
-      (setq args (cddr args)))
-    template))
-
-(defstruct (yas--table (:constructor yas--make-snippet-table (name)))
-  "A table to store snippets for a particular mode.
-
-Has the following fields:
-
-`yas--table-name'
-
-  A symbol name normally corresponding to a major mode, but can
-  also be a pseudo major-mode to be referenced in
-  `yas-extra-modes', for example.
-
-`yas--table-hash'
-
-  A hash table (KEY . NAMEHASH), known as the \"keyhash\". KEY is
-  a string or a vector, where the former is the snippet's trigger
-  and the latter means it's a direct keybinding. NAMEHASH is yet
-  another hash of (NAME . TEMPLATE) where NAME is the snippet's
-  name and TEMPLATE is a `yas--template' object.
-
-`yas--table-direct-keymap'
-
-  A keymap for the snippets in this table that have direct
-  keybindings. This is kept in sync with the keyhash, i.e., all
-  the elements of the keyhash that are vectors appear here as
-  bindings to `yas-expand-from-keymap'.
-
-`yas--table-uuidhash'
-
-  A hash table mapping snippets uuid's to the same `yas--template'
-  objects. A snippet uuid defaults to the snippet's name.
-"
-  name
-  (hash (make-hash-table :test 'equal))
-  (uuidhash (make-hash-table :test 'equal))
-  (parents nil)
-  (direct-keymap (make-sparse-keymap)))
-
-(defun yas--get-template-by-uuid (mode uuid)
-  "Find the snippet template in MODE by its UUID."
-  (let* ((table (gethash mode yas--tables mode)))
-    (when table
-      (gethash uuid (yas--table-uuidhash table)))))
-
-;; Apropos storing/updating in TABLE, this works in two steps:
-;;
-;; 1. `yas--remove-template-by-uuid' removes any
-;;    keyhash-namehash-template mappings from TABLE, grabing the
-;;    snippet by its uuid. Also removes mappings from TABLE's
-;;    `yas--table-direct-keymap' (FIXME: and should probably take care
-;;    of potentially stale menu bindings right?.)
-;;
-;; 2. `yas--add-template' adds this all over again.
-;;
-;;    Create a new or add to an existing keyhash-namehash mapping.
-;;
-;;  For reference on understanding this, consider three snippet
-;;  definitions:
-;;
-;;  A:   # name: The Foo
-;;       # key: foo
-;;       # binding: C-c M-l
-;;
-;;  B:   # name: Mrs Foo
-;;       # key: foo
-;;
-;;  C:   # name: The Bar
-;;       # binding: C-c M-l
-;;
-;;  D:   # name: Baz
-;;       # key: baz
-;;
-;;  keyhash       namehashes(3)      yas--template structs(4)
-;;  -----------------------------------------------------
-;;                                            __________
-;;                                           /          \
-;;  "foo"      --->  "The Foo" --->  [yas--template A]   |
-;;                   "Mrs Foo" --->  [yas--template B]   |
-;;                                                      |
-;;  [C-c M-l]  --->  "The Foo" -------------------------/
-;;                   "The Bar" --->  [yas--template C]
-;;
-;;  "baz"      --->  "Baz"     --->  [yas--template D]
-;;
-;; Additionally, since uuid defaults to the name, we have a
-;; `yas--table-uuidhash' for TABLE
-;;
-;; uuidhash       yas--template structs
-;; -------------------------------
-;; "The Foo" ---> [yas--template A]
-;; "Mrs Foo" ---> [yas--template B]
-;; "The Bar" ---> [yas--template C]
-;; "Baz"     ---> [yas--template D]
-;;
-;; FIXME: the more I look at this data-structure the more I think I'm
-;; stupid. There has to be an easier way (but beware lots of code
-;; depends on this).
-;;
-(defun yas--remove-template-by-uuid (table uuid)
-  "Remove from TABLE a template identified by UUID."
-  (let ((template (gethash uuid (yas--table-uuidhash table))))
-    (when template
-      (let* ((name                (yas--template-name template))
-             (empty-keys          nil))
-        ;; Remove the name from each of the targeted namehashes
-        ;;
-        (maphash #'(lambda (k v)
-                     (let ((template (gethash name v)))
-                       (when (and template
-                                  (eq uuid (yas--template-uuid template)))
-                         (remhash name v)
-                         (when (zerop (hash-table-count v))
-                           (push k empty-keys)))))
-                 (yas--table-hash table))
-        ;; Remove the namehash themselves if they've become empty
-        ;;
-        (dolist (key empty-keys)
-          (when (vectorp key)
-            (define-key (yas--table-direct-keymap table) key nil))
-          (remhash key (yas--table-hash table)))
-
-        ;; Finally, remove the uuid from the uuidhash
-        ;;
-        (remhash uuid (yas--table-uuidhash table))))))
-
-(defun yas--add-template (table template)
-  "Store in TABLE the snippet template TEMPLATE.
-
-KEY can be a string (trigger key) of a vector (direct
-keybinding)."
-  (let ((name (yas--template-name template))
-        (key (yas--template-key template))
-        (keybinding (yas--template-keybinding template))
-        (menu-binding-pair (yas--template-menu-binding-pair-get-create template)))
-    (dolist (k (remove nil (list key keybinding)))
-      (puthash name
-               template
-               (or (gethash k
-                            (yas--table-hash table))
-                   (puthash k
-                            (make-hash-table :test 'equal)
-                            (yas--table-hash table))))
-      (when (vectorp k)
-        (define-key (yas--table-direct-keymap table) k 'yas-expand-from-keymap)))
-
-    ;; Update TABLE's `yas--table-uuidhash'
-    (puthash (yas--template-uuid template)
-             template
-             (yas--table-uuidhash table))))
-
-(defun yas--update-template (table template)
-  "Add or update TEMPLATE in TABLE.
-
-Also takes care of adding and updating to the associated menu."
-  ;; Remove from table by uuid
-  ;;
-  (yas--remove-template-by-uuid table (yas--template-uuid template))
-  ;; Add to table again
-  ;;
-  (yas--add-template table template)
-  ;; Take care of the menu
-  ;;
-  (when yas-use-menu
-    (yas--update-template-menu table template)))
-
-(defun yas--update-template-menu (table template)
-  "Update every menu-related for TEMPLATE"
-  (let ((menu-binding-pair (yas--template-menu-binding-pair-get-create template))
-        (key (yas--template-key template))
-        (keybinding (yas--template-keybinding template)))
-    ;; The snippet might have changed name or keys, so update
-    ;; user-visible strings
-    ;;
-    (unless (eq (cdr menu-binding-pair) :none)
-      ;; the menu item name
-      ;;
-      (setf (cadar menu-binding-pair) (yas--template-name template))
-      ;; the :keys information (also visible to the user)
-      (setf (getf (cdr (car menu-binding-pair)) :keys)
-            (or (and keybinding (key-description keybinding))
-                (and key (concat key yas-trigger-symbol))))))
-  (unless (yas--template-menu-managed-by-yas-define-menu template)
-    (let ((menu-keymap
-           (yas--menu-keymap-get-create (yas--table-mode table)
-                                        (mapcar #'yas--table-mode
-                                                (yas--table-parents table))))
-          (group (yas--template-group template)))
-      ;; Remove from menu keymap
-      ;;
-      (assert menu-keymap)
-      (yas--delete-from-keymap menu-keymap (yas--template-uuid template))
-
-      ;; Add necessary subgroups as necessary.
-      ;;
-      (dolist (subgroup group)
-        (let ((subgroup-keymap (lookup-key menu-keymap (vector (make-symbol subgroup)))))
-          (unless (and subgroup-keymap
-                       (keymapp subgroup-keymap))
-            (setq subgroup-keymap (make-sparse-keymap))
-            (define-key menu-keymap (vector (make-symbol subgroup))
-              `(menu-item ,subgroup ,subgroup-keymap)))
-          (setq menu-keymap subgroup-keymap)))
-
-      ;; Add this entry to the keymap
-      ;;
-      (define-key menu-keymap
-        (vector (make-symbol (yas--template-uuid template)))
-        (car (yas--template-menu-binding-pair template))))))
-
-(defun yas--namehash-templates-alist (namehash)
-  (let (alist)
-    (maphash #'(lambda (k v)
-                 (push (cons k v) alist))
-             namehash)
-    alist))
-
-(defun yas--fetch (table key)
-  "Fetch templates in TABLE by KEY.
-
-Return a list of cons (NAME . TEMPLATE) where NAME is a
-string and TEMPLATE is a `yas--template' structure."
-  (let* ((keyhash (yas--table-hash table))
-         (namehash (and keyhash (gethash key keyhash))))
-    (when namehash
-      (yas--filter-templates-by-condition (yas--namehash-templates-alist namehash)))))
-
-
-;;; Filtering/condition logic
-
-(defun yas--eval-condition (condition)
-  (condition-case err
-      (save-excursion
-        (save-restriction
-          (save-match-data
-            (eval condition))))
-    (error (progn
-             (yas--message 1 "Error in condition evaluation: %s" (error-message-string err))
-             nil))))
-
-
-(defun yas--filter-templates-by-condition (templates)
-  "Filter the templates using the applicable condition.
-
-TEMPLATES is a list of cons (NAME . TEMPLATE) where NAME is a
-string and TEMPLATE is a `yas--template' structure.
-
-This function implements the rules described in
-`yas-buffer-local-condition'.  See that variables documentation."
-  (let ((requirement (yas--require-template-specific-condition-p)))
-    (if (eq requirement 'always)
-        templates
-      (remove-if-not #'(lambda (pair)
-                         (yas--template-can-expand-p
-                          (yas--template-condition (cdr pair)) requirement))
-                     templates))))
-
-(defun yas--require-template-specific-condition-p ()
-  "Decides if this buffer requests/requires snippet-specific
-conditions to filter out potential expansions."
-  (if (eq 'always yas-buffer-local-condition)
-      'always
-    (let ((local-condition (or (and (consp yas-buffer-local-condition)
-                                    (yas--eval-condition yas-buffer-local-condition))
-                               yas-buffer-local-condition)))
-      (when local-condition
-        (if (eq local-condition t)
-            t
-          (and (consp local-condition)
-               (eq 'require-snippet-condition (car local-condition))
-               (symbolp (cdr local-condition))
-               (cdr local-condition)))))))
-
-(defun yas--template-can-expand-p (condition requirement)
-  "Evaluates CONDITION and REQUIREMENT and returns a boolean"
-  (let* ((result (or (null condition)
-                     (yas--eval-condition condition))))
-    (cond ((eq requirement t)
-           result)
-          (t
-           (eq requirement result)))))
-
-(defun yas--all-parents (mode)
-  "Returns a list of all parent modes of MODE"
-  (let ((parents (gethash mode yas--parents)))
-    (append parents
-            (mapcan #'yas--all-parents parents))))
-
-(defun yas--table-templates (table)
-  (when table
-    (let ((acc (list)))
-      (maphash #'(lambda (key namehash)
-                   (maphash #'(lambda (name template)
-                                (push (cons name template) acc))
-                            namehash))
-               (yas--table-hash table))
-      (yas--filter-templates-by-condition acc))))
-
-(defun yas--current-key ()
-  "Get the key under current position. A key is used to find
-the template of a snippet in the current snippet-table."
-  (let ((start (point))
-        (end (point))
-        (syntaxes yas-key-syntaxes)
-        syntax
-        done
-        templates)
-    (while (and (not done) syntaxes)
-      (setq syntax (car syntaxes))
-      (setq syntaxes (cdr syntaxes))
-      (save-excursion
-        (skip-syntax-backward syntax)
-        (setq start (point)))
-      (setq templates
-            (mapcan #'(lambda (table)
-                        (yas--fetch table (buffer-substring-no-properties start end)))
-                    (yas--get-snippet-tables)))
-      (if templates
-          (setq done t)
-        (setq start end)))
-    (list templates
-          start
-          end)))
-
-
-(defun yas--table-all-keys (table)
-  (when table
-    (let ((acc))
-      (maphash #'(lambda (key namehash)
-                   (when (yas--filter-templates-by-condition (yas--namehash-templates-alist namehash))
-                     (push key acc)))
-               (yas--table-hash table))
-      acc)))
-
-(defun yas--table-mode (table)
-  (intern (yas--table-name table)))
-
-
-;;; Internal functions:
-
-(defun yas--real-mode? (mode)
-  "Try to find out if MODE is a real mode. The MODE bound to
-a function (like `c-mode') is considered real mode. Other well
-known mode like `ruby-mode' which is not part of Emacs might
-not bound to a function until it is loaded. So yasnippet keeps
-a list of modes like this to help the judgement."
-  (or (fboundp mode)
-      (find mode yas--known-modes)))
-
-(defun yas--eval-lisp (form)
-  "Evaluate FORM and convert the result to string."
-  (let ((retval (catch 'yas--exception
-                  (condition-case err
-                      (save-excursion
-                        (save-restriction
-                          (save-match-data
-                            (widen)
-                            (let ((result (eval form)))
-                              (when result
-                                (format "%s" result))))))
-                    (error (if yas-good-grace
-                               (yas--format "elisp error! %s" (error-message-string err))
-                             (error (yas--format "elisp error: %s"
-                                            (error-message-string err)))))))))
-    (when (and (consp retval)
-               (eq 'yas--exception (car retval)))
-      (error (cdr retval)))
-    retval))
-
-(defun yas--eval-lisp-no-saves (form)
-  (condition-case err
-      (eval form)
-    (error (if yas-good-grace
-               (yas--format "elisp error! %s" (error-message-string err))
-             (error (yas--format "elisp error: %s"
-                            (error-message-string err)))))))
-
-(defun yas--read-lisp (string &optional nil-on-error)
-  "Read STRING as a elisp expression and return it.
-
-In case STRING in an invalid expression and NIL-ON-ERROR is nil,
-return an expression that when evaluated will issue an error."
-  (condition-case err
-      (read string)
-    (error (and (not nil-on-error)
-                `(error (error-message-string ,err))))))
-
-(defun yas--read-keybinding (keybinding)
-  "Read KEYBINDING as a snippet keybinding, return a vector."
-  (when (and keybinding
-             (not (string-match "keybinding" keybinding)))
-    (condition-case err
-        (let ((res (or (and (string-match "^\\[.*\\]$" keybinding)
-                            (read keybinding))
-                       (read-kbd-macro keybinding 'need-vector))))
-          res)
-      (error
-       (yas--message 3 "warning: keybinding \"%s\" invalid since %s."
-                keybinding (error-message-string err))
-       nil))))
-
-(defvar yas-extra-modes nil
-  "If non-nil, also lookup snippets for this/these modes.
-
-Can be a symbol or a list of symbols.
-
-This variable probably makes more sense as buffer-local, so
-ensure your use `make-local-variable' when you set it.")
-(defun yas-extra-modes ()
-  (if (listp yas-extra-modes) yas-extra-modes (list yas-extra-modes)))
-(defvaralias 'yas/mode-symbol 'yas-extra-modes)
-
-(defun yas--table-get-create (mode)
-  "Get or create the snippet table corresponding to MODE."
-  (let ((table (gethash mode
-                        yas--tables)))
-    (unless table
-      (setq table (yas--make-snippet-table (symbol-name mode)))
-      (puthash mode table yas--tables)
-      (push (cons (intern (format "yas--direct-%s" mode))
-                  (yas--table-direct-keymap table))
-            yas--direct-keymaps))
-    table))
-
-(defun yas--get-snippet-tables ()
-  "Get snippet tables for current buffer.
-
-Return a list of `yas--table' objects. The list of modes to
-consider is returned by `yas--modes-to-activate'"
-  (remove nil
-          (mapcar #'(lambda (mode-name)
-                      (gethash mode-name yas--tables))
-                  (yas--modes-to-activate))))
-
-(defun yas--menu-keymap-get-create (mode &optional parents)
-  "Get or create the menu keymap for MODE and its PARENTS.
-
-This may very well create a plethora of menu keymaps and arrange
-them all in `yas--menu-table'"
-  (let* ((menu-keymap (or (gethash mode yas--menu-table)
-                          (puthash mode (make-sparse-keymap) yas--menu-table))))
-    (mapc #'yas--menu-keymap-get-create parents)
-    (define-key yas--minor-mode-menu (vector mode)
-        `(menu-item ,(symbol-name mode) ,menu-keymap
-                    :visible (yas--show-menu-p ',mode)))
-    menu-keymap))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Template-related and snippet loading functions
-
-(defun yas--parse-template (&optional file)
-  "Parse the template in the current buffer.
-
-Optional FILE is the absolute file name of the file being
-parsed.
-
-Optional GROUP is the group where the template is to go,
-otherwise we attempt to calculate it from FILE.
-
-Return a snippet-definition, i.e. a list
-
- (KEY TEMPLATE NAME CONDITION GROUP VARS FILE KEYBINDING UUID)
-
-If the buffer contains a line of \"# --\" then the contents above
-this line are ignored. Directives can set most of these with the syntax:
-
-# directive-name : directive-value
-
-Here's a list of currently recognized directives:
-
- * type
- * name
- * contributor
- * condition
- * group
- * key
- * expand-env
- * binding
- * uuid"
-  (goto-char (point-min))
-  (let* ((type 'snippet)
-         (name (and file
-                    (file-name-nondirectory file)))
-         (key nil)
-         template
-         bound
-         condition
-         (group (and file
-                     (yas--calculate-group file)))
-         expand-env
-         binding
-         uuid)
-    (if (re-search-forward "^# --\n" nil t)
-        (progn (setq template
-                     (buffer-substring-no-properties (point)
-                                                     (point-max)))
-               (setq bound (point))
-               (goto-char (point-min))
-               (while (re-search-forward "^# *\\([^ ]+?\\) *: *\\(.*\\)$" bound t)
-                 (when (string= "uuid" (match-string-no-properties 1))
-                   (setq uuid (match-string-no-properties 2)))
-                 (when (string= "type" (match-string-no-properties 1))
-                   (setq type (if (string= "command" (match-string-no-properties 2))
-                                  'command
-                                'snippet)))
-                 (when (string= "key" (match-string-no-properties 1))
-                   (setq key (match-string-no-properties 2)))
-                 (when (string= "name" (match-string-no-properties 1))
-                   (setq name (match-string-no-properties 2)))
-                 (when (string= "condition" (match-string-no-properties 1))
-                   (setq condition (yas--read-lisp (match-string-no-properties 2))))
-                 (when (string= "group" (match-string-no-properties 1))
-                   (setq group (match-string-no-properties 2)))
-                 (when (string= "expand-env" (match-string-no-properties 1))
-                   (setq expand-env (yas--read-lisp (match-string-no-properties 2)
-                                                   'nil-on-error)))
-                 (when (string= "binding" (match-string-no-properties 1))
-                   (setq binding (match-string-no-properties 2)))))
-      (setq template
-            (buffer-substring-no-properties (point-min) (point-max))))
-    (unless (or key binding)
-      (setq key (and file (file-name-nondirectory file))))
-    (when (eq type 'command)
-      (setq template (yas--read-lisp (concat "(progn" template ")"))))
-    (when group
-      (setq group (split-string group "\\.")))
-    (list key template name condition group expand-env file binding uuid)))
-
-(defun yas--calculate-group (file)
-  "Calculate the group for snippet file path FILE."
-  (let* ((dominating-dir (locate-dominating-file file
-                                                 ".yas-make-groups"))
-         (extra-path (and dominating-dir
-                          (replace-regexp-in-string (concat "^"
-                                                            (expand-file-name dominating-dir))
-                                                    ""
-                                                    (expand-file-name file))))
-         (extra-dir (and extra-path
-                         (file-name-directory extra-path)))
-         (group (and extra-dir
-                     (replace-regexp-in-string "/"
-                                               "."
-                                               (directory-file-name extra-dir)))))
-    group))
-
-(defun yas--subdirs (directory &optional filep)
-  "Return subdirs or files of DIRECTORY according to FILEP."
-  (remove-if (lambda (file)
-               (or (string-match "^\\."
-                                 (file-name-nondirectory file))
-                   (string-match "^#.*#$"
-                                 (file-name-nondirectory file))
-                   (string-match "~$"
-                                 (file-name-nondirectory file))
-                   (if filep
-                       (file-directory-p file)
-                     (not (file-directory-p file)))))
-             (directory-files directory t)))
-
-(defun yas--make-menu-binding (template)
-  (let ((mode (yas--table-mode (yas--template-table template))))
-    `(lambda () (interactive) (yas--expand-or-visit-from-menu ',mode ,(yas--template-uuid template)))))
-
-(defun yas--expand-or-visit-from-menu (mode uuid)
-  (let* ((table (yas--table-get-create mode))
-         (yas--current-template (and table
-                                    (gethash uuid (yas--table-uuidhash table)))))
-    (when yas--current-template
-      (if yas-visit-from-menu
-          (yas--visit-snippet-file-1 yas--current-template)
-        (let ((where (if (region-active-p)
-                         (cons (region-beginning) (region-end))
-                       (cons (point) (point)))))
-          (yas-expand-snippet (yas--template-content yas--current-template)
-                              (car where)
-                              (cdr where)
-                              (yas--template-expand-env yas--current-template)))))))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Popping up for keys and templates
-;;
-(defvar yas--x-pretty-prompt-templates nil
-  "If non-nil, attempt to prompt for templates like TextMate.")
-
-
-(defun yas--prompt-for-template (templates &optional prompt)
-  "Interactively choose a template from the list TEMPLATES.
-
-TEMPLATES is a list of `yas--template'."
-  (when templates
-    (setq templates
-          (sort templates #'(lambda (t1 t2)
-                              (< (length (yas--template-name t1))
-                                 (length (yas--template-name t2))))))
-    (if yas--x-pretty-prompt-templates
-        (yas--x-pretty-prompt-templates "Choose a snippet" templates)
-      (some #'(lambda (fn)
-                (funcall fn (or prompt "Choose a snippet: ")
-                         templates
-                         #'yas--template-name))
-            yas-prompt-functions))))
-
-(defun yas--prompt-for-keys (keys &optional prompt)
-  "Interactively choose a template key from the list KEYS."
-  (when keys
-    (some #'(lambda (fn)
-              (funcall fn (or prompt "Choose a snippet key: ") keys))
-          yas-prompt-functions)))
-
-(defun yas--prompt-for-table (tables &optional prompt)
-  (when tables
-    (some #'(lambda (fn)
-              (funcall fn (or prompt "Choose a snippet table: ")
-                       tables
-                       #'yas--table-name))
-          yas-prompt-functions)))
-
-(defun yas-x-prompt (prompt choices &optional display-fn)
-  "Display choices in a x-window prompt."
-  ;; FIXME: HACK: if we notice that one of the objects in choices is
-  ;; actually a `yas--template', defer to `yas--x-prompt-pretty-templates'
-  ;;
-  ;; This would be better implemented by passing CHOICES as a
-  ;; strucutred tree rather than a list. Modifications would go as far
-  ;; up as `yas--all-templates' I think.
-  ;;
-  (when (and window-system choices)
-    (let ((chosen
-           (let (menu d) ;; d for display
-             (dolist (c choices)
-               (setq d (or (and display-fn (funcall display-fn c))
-                           c))
-               (cond ((stringp d)
-                      (push (cons (concat "   " d) c) menu))
-                     ((listp d)
-                      (push (car d) menu))))
-             (setq menu (list prompt (push "title" menu)))
-             (x-popup-menu (if (fboundp 'posn-at-point)
-                               (let ((x-y (posn-x-y (posn-at-point (point)))))
-                                 (list (list (+ (car x-y) 10)
-                                             (+ (cdr x-y) 20))
-                                       (selected-window)))
-                             t)
-                           menu))))
-      (or chosen
-          (keyboard-quit)))))
-
-(defun yas--x-pretty-prompt-templates (prompt templates)
-  "Display TEMPLATES, grouping neatly by table name."
-  (let ((organized (make-hash-table :test #'equal))
-        menu
-        more-than-one-table
-        prefix)
-    (dolist (tl templates)
-      (puthash (yas--template-table tl)
-               (cons tl
-                     (gethash (yas--template-table tl) organized))
-               organized))
-    (setq more-than-one-table (> (hash-table-count organized) 1))
-    (setq prefix (if more-than-one-table
-                     "   " ""))
-    (if more-than-one-table
-        (maphash #'(lambda (table templates)
-                     (push (yas--table-name table) menu)
-                     (dolist (tl templates)
-                       (push (cons (concat prefix (yas--template-name tl)) tl) menu))) organized)
-      (setq menu (mapcar #'(lambda (tl) (cons (concat prefix (yas--template-name tl)) tl)) templates)))
-
-    (setq menu (nreverse menu))
-    (or (x-popup-menu (if (fboundp 'posn-at-point)
-                          (let ((x-y (posn-x-y (posn-at-point (point)))))
-                            (list (list (+ (car x-y) 10)
-                                        (+ (cdr x-y) 20))
-                                  (selected-window)))
-                        t)
-                      (list prompt (push "title" menu)))
-        (keyboard-quit))))
-
-(defun yas-ido-prompt (prompt choices &optional display-fn)
-  (when (and (fboundp 'ido-completing-read)
-	     (or (>= emacs-major-version 24)
-		 ido-mode))
-    (yas-completing-prompt prompt choices display-fn #'ido-completing-read)))
-
-(eval-when-compile (require 'dropdown-list nil t))
-(defun yas-dropdown-prompt (prompt choices &optional display-fn)
-  (when (featurep 'dropdown-list)
-    (let (formatted-choices
-          filtered-choices
-          d
-          n)
-      (dolist (choice choices)
-        (setq d (or (and display-fn (funcall display-fn choice))
-                      choice))
-        (when (stringp d)
-          (push d formatted-choices)
-          (push choice filtered-choices)))
-
-      (setq n (and formatted-choices (dropdown-list formatted-choices)))
-      (if n
-          (nth n filtered-choices)
-        (keyboard-quit)))))
-
-(defun yas-completing-prompt (prompt choices &optional display-fn completion-fn)
-  (let (formatted-choices
-        filtered-choices
-        chosen
-        d
-        (completion-fn (or completion-fn
-                           #'completing-read)))
-    (dolist (choice choices)
-      (setq d (or (and display-fn (funcall display-fn choice))
-                    choice))
-      (when (stringp d)
-        (push d formatted-choices)
-        (push choice filtered-choices)))
-    (setq chosen (and formatted-choices
-                      (funcall completion-fn prompt
-                               formatted-choices
-                               nil
-                               'require-match
-                               nil
-                               nil)))
-    (let ((position (or (and chosen
-                             (position chosen formatted-choices :test #'string=))
-                        0)))
-      (nth position filtered-choices))))
-
-(defun yas-no-prompt (prompt choices &optional display-fn)
-  (first choices))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Loading snippets from files
-;;
-(defun yas--load-yas-setup-file (file)
-  (load file 'noerror))
-
-(defun yas-load-directory (top-level-dir &optional use-jit)
-  "Load snippets in directory hierarchy TOP-LEVEL-DIR.
-
-Below TOP-LEVEL-DIR each directory should be a mode name.
-
-Optional USE-JIT use jit-loading of snippets."
-  (interactive "DSelect the root directory: ")
-  (unless yas-snippet-dirs
-    (setq yas-snippet-dirs top-level-dir))
-  (dolist (dir (yas--subdirs top-level-dir))
-    (let* ((major-mode-and-parents (yas--compute-major-mode-and-parents
-                                    (concat dir "/dummy")))
-           (mode-sym (car major-mode-and-parents))
-           (parents (cdr major-mode-and-parents)))
-      ;; Attention: The parents and the menus are already defined
-      ;; here, even if the snippets are later jit-loaded.
-      ;;
-      ;; * We need to know the parents at this point since entering a
-      ;;   given mode should jit load for its parents
-      ;;   immediately. This could be reviewed, the parents could be
-      ;;   discovered just-in-time-as well
-      ;;
-      ;; * We need to create the menus here to support the `full'
-      ;;   option to `yas-use-menu' (all known snippet menus are shown to the user)
-      ;;
-      (yas--define-parents mode-sym parents)
-      (yas--menu-keymap-get-create mode-sym)
-      (let ((form `(yas--load-directory-1 ,dir
-                                         ',mode-sym
-                                         ',parents)))
-        (if use-jit
-            (yas--schedule-jit mode-sym form)
-            (eval form)))))
-  (when (interactive-p)
-    (yas--message 3 "Loaded snippets from %s." top-level-dir)))
-
-(defun yas--load-directory-1 (directory mode-sym parents &optional no-compiled-snippets)
-  "Recursively load snippet templates from DIRECTORY."
-  (unless (file-exists-p (concat directory "/" ".yas-skip"))
-    (if (and (not no-compiled-snippets)
-             (progn (yas--message 2 "Loading compiled snippets from %s" directory) t)
-             (load (expand-file-name ".yas-compiled-snippets" directory) 'noerror (<= yas-verbosity 3)))
-      (yas--message 2 "Loading snippet files from %s" directory)
-      (yas--load-directory-2 directory mode-sym))))
-
-(defun yas--load-directory-2 (directory mode-sym)
-  ;; Load .yas-setup.el files wherever we find them
-  ;;
-  (yas--load-yas-setup-file (expand-file-name ".yas-setup" directory))
-  (let* ((default-directory directory)
-         (snippet-defs nil))
-    ;; load the snippet files
-    ;;
-    (with-temp-buffer
-      (dolist (file (yas--subdirs directory 'no-subdirs-just-files))
-        (when (file-readable-p file)
-          (insert-file-contents file nil nil nil t)
-          (push (yas--parse-template file)
-                snippet-defs))))
-    (when snippet-defs
-      (yas-define-snippets mode-sym
-                           snippet-defs))
-    ;; now recurse to a lower level
-    ;;
-    (dolist (subdir (yas--subdirs directory))
-      (yas--load-directory-2 subdir
-                            mode-sym))))
-
-(defun yas--load-snippet-dirs (&optional nojit)
-  "Reload the directories listed in `yas-snippet-dirs' or
-   prompt the user to select one."
-  (let (errors)
-    (if yas-snippet-dirs
-        (dolist (directory (reverse (yas-snippet-dirs)))
-          (cond ((file-directory-p directory)
-                 (yas-load-directory directory (not nojit))
-                 (if nojit
-                     (yas--message 3 "Loaded %s" directory)
-                   (yas--message 3 "Prepared just-in-time loading for %s" directory)))
-                (t
-                 (push (yas--message 0 "Check your `yas-snippet-dirs': %s is not a directory" directory) errors))))
-      (call-interactively 'yas-load-directory))
-    errors))
-
-(defun yas-reload-all (&optional interactive)
-  "Reload all snippets and rebuild the YASnippet menu.
-
-When called interactively force immediate reload of all known
-snippets under `yas-snippet-dirs', otherwise use just-in-time
-loading."
-  (interactive "p")
-  (catch 'abort
-    (let ((errors)
-          (snippet-editing-buffers
-           (remove-if-not #'(lambda (buffer)
-                              (with-current-buffer buffer yas--editing-template))
-                          (buffer-list))))
-      ;; Warn if there are buffers visiting snippets, since reloading will break
-      ;; any on-line editing of those buffers.
-      ;;
-      (when snippet-editing-buffers
-          (if interactive
-              (if (y-or-n-p "Some buffers editing live snippets, close them and proceed with reload?")
-                  (mapc #'kill-buffer snippet-editing-buffers)
-                (yas--message 1 "Aborted reload...")
-                (throw 'abort nil))
-            ;; in a non-interactive use, at least set
-            ;; `yas--editing-template' to nil, make it guess it next time around
-            (mapc #'(lambda (buffer) (setq yas--editing-template nil)) (buffer-list))))
-
-      ;; Empty all snippet tables, parenting info and all menu tables
-      ;;
-      (setq yas--tables (make-hash-table))
-      (setq yas--parents (make-hash-table))
-      (setq yas--menu-table (make-hash-table))
-
-      ;; Cancel all pending 'yas--scheduled-jit-loads'
-      ;;
-      (setq yas--scheduled-jit-loads (make-hash-table))
-
-      ;; Init the `yas-minor-mode-map', taking care not to break the
-      ;; menu....
-      ;;
-      (setcdr yas-minor-mode-map (cdr (yas--init-minor-keymap)))
-
-      ;; Reload the directories listed in `yas-snippet-dirs' or prompt
-      ;; the user to select one.
-      ;;
-      (setq errors (yas--load-snippet-dirs interactive))
-      ;; Reload the direct keybindings
-      ;;
-      (yas-direct-keymaps-reload)
-      ;; Reload the trigger-key (shoudn't be needed, but see issue #237)
-      ;;
-      (yas--trigger-key-reload)
-
-      (yas--message 3 "Reloaded everything%s...%s."
-                   (if interactive "" " (snippets will load just-in-time)")
-                   (if errors " (some errors, check *Messages*)" "")))))
-
-(defun yas--load-pending-jits ()
-  (when yas-minor-mode
-    (dolist (mode (yas--modes-to-activate))
-      (let ((forms (gethash mode yas--scheduled-jit-loads)))
-        (dolist (form forms)
-          (yas--message  3 "Loading for `%s', just-in-time: %s!" mode form)
-          (eval form))
-        (remhash mode yas--scheduled-jit-loads)))))
-
-;; (when (<= emacs-major-version 22)
-;;   (add-hook 'after-change-major-mode-hook 'yas--load-pending-jits))
-
-(defun yas--quote-string (string)
-  "Escape and quote STRING.
-foo\"bar\\! -> \"foo\\\"bar\\\\!\""
-  (concat "\""
-          (replace-regexp-in-string "[\\\"]"
-                                    "\\\\\\&"
-                                    string
-                                    t)
-          "\""))
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Snippet compilation function
-
-(defun yas--initialize ()
-  "For backward compatibility, enable `yas-minor-mode' globally"
-  (yas-global-mode 1))
-
-(defun yas-compile-directory (top-level-dir)
-  "Create .yas-compiled-snippets.el files under subdirs of TOP-LEVEL-DIR.
-
-This works by stubbing a few functions, then calling
-`yas-load-directory'."
-  (interactive "DTop level snippet directory?")
-  (flet ((yas--load-yas-setup-file
-          (file)
-          (let ((elfile (concat file ".el")))
-            (when (file-exists-p elfile)
-              (insert ";;; .yas-setup.el support file if any:\n;;;\n")
-              (insert-file-contents elfile)
-              (end-of-buffer)
-              )))
-         (yas-define-snippets
-          (mode snippets)
-          (insert ";;; Snippet definitions:\n;;;\n")
-          (let ((literal-snippets (list))
-                (print-length nil))
-            (dolist (snippet snippets)
-              (let ((key                    (first   snippet))
-                    (template-content       (second  snippet))
-                    (name                   (third   snippet))
-                    (condition              (fourth  snippet))
-                    (group                  (fifth   snippet))
-                    (expand-env             (sixth   snippet))
-                    (file                   nil) ;; (seventh snippet)) ;; omit on purpose
-                    (binding                (eighth  snippet))
-                    (uuid                    (ninth   snippet)))
-                (push `(,key
-                        ,template-content
-                        ,name
-                        ,condition
-                        ,group
-                        ,expand-env
-                        ,file
-                        ,binding
-                        ,uuid)
-                      literal-snippets)))
-            (insert (pp-to-string `(yas-define-snippets ',mode ',literal-snippets)))
-            (insert "\n\n")))
-         (yas--load-directory-1
-          (dir mode parents &rest ignore)
-          (let ((output-file (concat (file-name-as-directory dir) ".yas-compiled-snippets.el")))
-            (with-temp-file output-file
-              (insert (format ";;; Compiled snippets and support files for `%s'\n" mode))
-              (yas--load-directory-2 dir mode)
-              (insert (format ";;; Do not edit! File generated at %s\n" (current-time-string)))))))
-    (yas-load-directory top-level-dir nil)))
-
-(defun yas-recompile-all ()
-  "Compile every dir in `yas-snippet-dirs'."
-  (interactive)
-  (mapc #'yas-compile-directory (yas-snippet-dirs)))
-
-
-;;; JIT loading
-;;;
-
-(defvar yas--scheduled-jit-loads (make-hash-table)
-  "Alist of mode-symbols to forms to be evaled when `yas-minor-mode' kicks in.")
-
-(defun yas--schedule-jit (mode form)
-  (puthash mode
-           (cons form
-                 (gethash mode yas--scheduled-jit-loads))
-           yas--scheduled-jit-loads))
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Some user level functions
-;;;
-
-(defun yas-about ()
-  (interactive)
-  (message (concat "yasnippet (version "
-                   yas--version
-                   ") -- pluskid <pluskid@gmail.com>/joaotavora <joaotavora@gmail.com>")))
-
-(defun yas--define-parents (mode parents)
-  "Add PARENTS to the list of MODE's parents"
-  (puthash mode (remove-duplicates
-                 (append parents
-                         (gethash mode yas--parents)))
-           yas--parents))
-
-(defun yas-define-snippets (mode snippets)
-  "Define SNIPPETS for MODE.
-
-SNIPPETS is a list of snippet definitions, each taking the
-following form
-
- (KEY TEMPLATE NAME CONDITION GROUP EXPAND-ENV FILE KEYBINDING UUID)
-
-Within these, only KEY and TEMPLATE are actually mandatory.
-
-TEMPLATE might be a lisp form or a string, depending on whether
-this is a snippet or a snippet-command.
-
-CONDITION, EXPAND-ENV and KEYBINDING are lisp forms, they have
-been `yas--read-lisp'-ed and will eventually be
-`yas--eval-lisp'-ed.
-
-The remaining elements are strings.
-
-FILE is probably of very little use if you're programatically
-defining snippets.
-
-UUID is the snippets \"unique-id\". Loading a second snippet file
-with the same uuid replaced the previous snippet.
-
-You can use `yas--parse-template' to return such lists based on
-the current buffers contents."
-  (let ((snippet-table (yas--table-get-create mode))
-        (template nil))
-    (dolist (snippet snippets)
-      (setq template (yas-define-snippets-1 snippet
-                                            snippet-table)))
-    template))
-
-(defun yas-define-snippets-1 (snippet snippet-table)
-  "Helper for `yas-define-snippets'."
-  ;; X) Calculate some more defaults on the values returned by
-  ;; `yas--parse-template'.
-  ;;
-  (let* ((file (seventh snippet))
-         (key (car snippet))
-         (name (or (third snippet)
-                   (and file
-                        (file-name-directory file))))
-         (condition (fourth snippet))
-         (group (fifth snippet))
-         (keybinding (yas--read-keybinding (eighth snippet)))
-         (uuid (or (ninth snippet)
-                  name))
-         (template (or (gethash uuid (yas--table-uuidhash snippet-table))
-                       (yas--make-blank-template))))
-    ;; X) populate the template object
-    ;;
-    (yas--populate-template template
-                           :table       snippet-table
-                           :key         key
-                           :content     (second snippet)
-                           :name        (or name key)
-                           :group       group
-                           :condition   condition
-                           :expand-env  (sixth snippet)
-                           :file        (seventh snippet)
-                           :keybinding  keybinding
-                           :uuid         uuid)
-    ;; X) Update this template in the appropriate table. This step
-    ;;    also will take care of adding the key indicators in the
-    ;;    templates menu entry, if any
-    ;;
-    (yas--update-template snippet-table template)
-    ;; X) Return the template
-    ;;
-    ;;
-    template))
-
-
-;;; Apropos snippet menu:
-;;
-;; The snippet menu keymaps are store by mode in hash table called
-;; `yas--menu-table'. They are linked to the main menu in
-;; `yas--menu-keymap-get-create' and are initially created empty,
-;; reflecting the table hierarchy.
-;;
-;; They can be populated in two mutually exclusive ways: (1) by
-;; reading `yas--template-group', which in turn is populated by the "#
-;; group:" directives of the snippets or the ".yas-make-groups" file
-;; or (2) by using a separate `yas-define-menu' call, which declares a
-;; menu structure based on snippets uuids.
-;;
-;; Both situations are handled in `yas--update-template-menu', which
-;; uses the predicate `yas--template-menu-managed-by-yas-define-menu'
-;; that can tell between the two situations.
-;;
-;; Note:
-;;
-;; * if `yas-define-menu' is used it must run before
-;;   `yas-define-snippets' and the UUIDS must match, otherwise we get
-;;   duplicate entries. The `yas--template' objects are created in
-;;   `yas-define-menu', holding nothing but the menu entry,
-;;   represented by a pair of ((menu-item NAME :keys KEYS) TYPE) and
-;;   stored in `yas--template-menu-binding-pair'. The (menu-item ...)
-;;   part is then stored in the menu keymap itself which make the item
-;;   appear to the user. These limitations could probably be revised.
-;;
-;; * The `yas--template-perm-group' slot is only used in
-;;   `yas-describe-tables'.
-;;
-(defun yas--template-menu-binding-pair-get-create (template &optional type)
-  "Get TEMPLATE's menu binding or assign it a new one.
-
-TYPE may be `:stay', signalling this menu binding should be
-static in the menu."
-  (or (yas--template-menu-binding-pair template)
-      (let ((key (yas--template-key template))
-            (keybinding (yas--template-keybinding template)))
-        (setf (yas--template-menu-binding-pair template)
-              (cons `(menu-item ,(or (yas--template-name template)
-                                     (yas--template-uuid template))
-                                ,(yas--make-menu-binding template)
-                                :keys ,nil)
-                    type)))))
-(defun yas--template-menu-managed-by-yas-define-menu (template)
-  "Non-nil if TEMPLATE's menu entry was included in a `yas-define-menu' call."
-  (cdr (yas--template-menu-binding-pair template)))
-
-
-(defun yas--show-menu-p (mode)
-  (cond ((eq yas-use-menu 'abbreviate)
-         (find mode
-               (mapcar #'(lambda (table)
-                           (yas--table-mode table))
-                       (yas--get-snippet-tables))))
-        ((eq yas-use-menu 'full)
-         t)
-        ((eq yas-use-menu t)
-         t)))
-
-(defun yas--delete-from-keymap (keymap uuid)
-  "Recursively delete items with UUID from KEYMAP and its submenus."
-
-  ;; XXX: This used to skip any submenus named \"parent mode\"
-  ;;
-  ;; First of all, recursively enter submenus, i.e. the tree is
-  ;; searched depth first so that stale submenus can be found in the
-  ;; higher passes.
-  ;;
-  (mapc #'(lambda (item)
-            (when (and (listp (cdr item))
-                       (keymapp (third (cdr item))))
-              (yas--delete-from-keymap (third (cdr item)) uuid)))
-        (rest keymap))
-  ;; Set the uuid entry to nil
-  ;;
-  (define-key keymap (vector (make-symbol uuid)) nil)
-  ;; Destructively modify keymap
-  ;;
-  (setcdr keymap (delete-if #'(lambda (item)
-                                (or (null (cdr item))
-                                    (and (keymapp (third (cdr item)))
-                                         (null (cdr (third (cdr item)))))))
-                            (rest keymap))))
-
-(defun yas-define-menu (mode menu &optional omit-items)
-  "Define a snippet menu for MODE according to MENU, ommitting OMIT-ITEMS.
-
-MENU is a list, its elements can be:
-
-- (yas-item UUID) : Creates an entry the snippet identified with
-  UUID. The menu entry for a snippet thus identified is
-  permanent, i.e. it will never move (be reordered) in the menu.
-
-- (yas-separator) : Creates a separator
-
-- (yas-submenu NAME SUBMENU) : Creates a submenu with NAME,
-  SUBMENU has the same form as MENU. NAME is also added to the
-  list of groups of the snippets defined thereafter.
-
-OMIT-ITEMS is a list of snippet uuid's that will always be
-ommited from MODE's menu, even if they're manually loaded.
-
-This function does nothing if `yas-use-menu' is nil.
-"
-  (when yas-use-menu
-    (let* ((table (yas--table-get-create mode))
-           (hash (yas--table-uuidhash table)))
-      (yas--define-menu-1 table
-                          (yas--menu-keymap-get-create mode)
-                          menu
-                          hash)
-      (dolist (uuid omit-items)
-        (let ((template (or (gethash uuid hash)
-                            (yas--populate-template (puthash uuid
-                                                             (yas--make-blank-template)
-                                                             hash)
-                                                    :table table
-                                                    :uuid uuid))))
-          (setf (yas--template-menu-binding-pair template) (cons nil :none)))))))
-
-(defun yas--define-menu-1 (table menu-keymap menu uuidhash &optional group-list)
-  (dolist (e (reverse menu))
-    (cond ((eq (first e) 'yas-item)
-           (let ((template (or (gethash (second e) uuidhash)
-                               (yas--populate-template (puthash (second e)
-                                                               (yas--make-blank-template)
-                                                               uuidhash)
-                                                      :table table
-                                                      :perm-group group-list
-                                                      :uuid (second e)))))
-             (define-key menu-keymap (vector (gensym))
-               (car (yas--template-menu-binding-pair-get-create template :stay)))))
-          ((eq (first e) 'yas-submenu)
-           (let ((subkeymap (make-sparse-keymap)))
-             (define-key menu-keymap (vector (gensym))
-               `(menu-item ,(second e) ,subkeymap))
-             (yas--define-menu-1 table
-                                subkeymap
-                                (third e)
-                                uuidhash
-                                (append group-list (list (second e))))))
-          ((eq (first e) 'yas-separator)
-           (define-key menu-keymap (vector (gensym))
-             '(menu-item "----")))
-          (t
-           (yas--message 3 "Don't know anything about menu entry %s" (first e))))))
-
-(defun yas--define (mode key template &optional name condition group)
-  "Define a snippet.  Expanding KEY into TEMPLATE.
-
-NAME is a description to this template.  Also update the menu if
-`yas-use-menu' is t.  CONDITION is the condition attached to
-this snippet.  If you attach a condition to a snippet, then it
-will only be expanded when the condition evaluated to non-nil."
-  (yas-define-snippets mode
-                       (list (list key template name condition group))))
-
-(defun yas-hippie-try-expand (first-time?)
-  "Integrate with hippie expand.  Just put this function in
-`hippie-expand-try-functions-list'."
-  (when yas-minor-mode
-    (if (not first-time?)
-        (let ((yas-fallback-behavior 'return-nil))
-          (yas-expand))
-      (undo 1)
-      nil)))
-
-
-;;; Apropos condition-cache:
-;;;
-;;;
-;;;
-;;;
-(defvar yas--condition-cache-timestamp nil)
-(defmacro yas-define-condition-cache (func doc &rest body)
-  "Define a function FUNC with doc DOC and body BODY, BODY is
-executed at most once every snippet expansion attempt, to check
-expansion conditions.
-
-It doesn't make any sense to call FUNC programatically."
-  `(defun ,func () ,(if (and doc
-                             (stringp doc))
-                        (concat doc
-"\n\nFor use in snippets' conditions. Within each
-snippet-expansion routine like `yas-expand', computes actual
-value for the first time then always returns a cached value.")
-                      (setq body (cons doc body))
-                      nil)
-     (let ((timestamp-and-value (get ',func 'yas--condition-cache)))
-       (if (equal (car timestamp-and-value) yas--condition-cache-timestamp)
-           (cdr timestamp-and-value)
-         (let ((new-value (progn
-                            ,@body
-                            )))
-           (put ',func 'yas--condition-cache (cons yas--condition-cache-timestamp new-value))
-           new-value)))))
-
-(defalias 'yas-expand 'yas-expand-from-trigger-key)
-(defun yas-expand-from-trigger-key (&optional field)
-  "Expand a snippet before point.
-
-If no snippet expansion is possible, fall back to the behaviour
-defined in `yas-fallback-behavior'.
-
-Optional argument FIELD is for non-interactive use and is an
-object satisfying `yas--field-p' to restrict the expansion to."
-  (interactive)
-  (setq yas--condition-cache-timestamp (current-time))
-  (let (templates-and-pos)
-    (unless (and yas-expand-only-for-last-commands
-                 (not (member last-command yas-expand-only-for-last-commands)))
-      (setq templates-and-pos (if field
-                                  (save-restriction
-                                    (narrow-to-region (yas--field-start field)
-                                                      (yas--field-end field))
-                                    (yas--current-key))
-                                (yas--current-key))))
-    (if (and templates-and-pos
-             (first templates-and-pos))
-        (yas--expand-or-prompt-for-template (first templates-and-pos)
-                                           (second templates-and-pos)
-                                           (third templates-and-pos))
-      (yas--fallback 'trigger-key))))
-
-(defun yas-expand-from-keymap ()
-  "Directly expand some snippets, searching `yas--direct-keymaps'.
-
-If expansion fails, execute the previous binding for this key"
-  (interactive)
-  (setq yas--condition-cache-timestamp (current-time))
-  (let* ((yas--prefix current-prefix-arg)
-         (vec (subseq (this-command-keys-vector) (if current-prefix-arg
-                                                     universal-argument-num-events
-                                                   0)))
-         (templates (mapcan #'(lambda (table)
-                                (yas--fetch table vec))
-                            (yas--get-snippet-tables))))
-    (if templates
-        (yas--expand-or-prompt-for-template templates)
-      (let ((yas-fallback-behavior 'call-other-command))
-        (yas--fallback)))))
-
-(defun yas--expand-or-prompt-for-template (templates &optional start end)
-  "Expand one of TEMPLATES from START to END.
-
-Prompt the user if TEMPLATES has more than one element, else
-expand immediately. Common gateway for
-`yas-expand-from-trigger-key' and `yas-expand-from-keymap'."
-  (let ((yas--current-template (or (and (rest templates) ;; more than one
-                                       (yas--prompt-for-template (mapcar #'cdr templates)))
-                                  (cdar templates))))
-    (when yas--current-template
-      (yas-expand-snippet (yas--template-content yas--current-template)
-                          start
-                          end
-                          (yas--template-expand-env yas--current-template)))))
-
-(defun yas--fallback (&optional from-trigger-key-p)
-  "Fallback after expansion has failed.
-
-Common gateway for `yas-expand-from-trigger-key' and
-`yas-expand-from-keymap'."
-  (cond ((eq yas-fallback-behavior 'return-nil)
-         ;; return nil
-         nil)
-        ((eq yas-fallback-behavior 'call-other-command)
-         (let* ((yas-minor-mode nil)
-                (yas--direct-keymaps nil)
-                (keys-1 (this-command-keys-vector))
-                (keys-2 (and yas-trigger-key
-                             from-trigger-key-p
-                             (stringp yas-trigger-key)
-                             (read-kbd-macro yas-trigger-key)))
-                (command-1 (and keys-1 (key-binding keys-1)))
-                (command-2 (and keys-2 (key-binding keys-2)))
-                ;; An (ugly) safety: prevents infinite recursion of
-                ;; yas-expand* calls.
-                (command (or (and (symbolp command-1)
-                                  (not (string-match "yas-expand" (symbol-name command-1)))
-                                  command-1)
-                             (and (symbolp command-2)
-                                  command-2))))
-           (when (and (commandp command)
-                      (not (string-match "yas-expand" (symbol-name command))))
-             (setq this-command command)
-             (call-interactively command))))
-        ((and (listp yas-fallback-behavior)
-              (cdr yas-fallback-behavior)
-              (eq 'apply (car yas-fallback-behavior)))
-         (if (cddr yas-fallback-behavior)
-             (apply (cadr yas-fallback-behavior)
-                    (cddr yas-fallback-behavior))
-           (when (commandp (cadr yas-fallback-behavior))
-             (setq this-command (cadr yas-fallback-behavior))
-             (call-interactively (cadr yas-fallback-behavior)))))
-        (t
-         ;; also return nil if all the other fallbacks have failed
-         nil)))
-
-
-
-;;; Utils for snippet development:
-
-(defun yas--all-templates (tables)
-  "Return all snippet tables applicable for the current buffer.
-
-Honours `yas-choose-tables-first', `yas-choose-keys-first' and
-`yas-buffer-local-condition'"
-  (when yas-choose-tables-first
-    (setq tables (list (yas--prompt-for-table tables))))
-  (mapcar #'cdr
-          (if yas-choose-keys-first
-              (let ((key (yas--prompt-for-keys
-                          (mapcan #'yas--table-all-keys tables))))
-                (when key
-                  (mapcan #'(lambda (table)
-                              (yas--fetch table key))
-                          tables)))
-            (remove-duplicates (mapcan #'yas--table-templates tables)
-                               :test #'equal))))
-
-(defun yas-insert-snippet (&optional no-condition)
-  "Choose a snippet to expand, pop-up a list of choices according
-to `yas--prompt-function'.
-
-With prefix argument NO-CONDITION, bypass filtering of snippets
-by condition."
-  (interactive "P")
-  (setq yas--condition-cache-timestamp (current-time))
-  (let* ((yas-buffer-local-condition (or (and no-condition
-                                              'always)
-                                         yas-buffer-local-condition))
-         (templates (yas--all-templates (yas--get-snippet-tables)))
-         (yas--current-template (and templates
-                                    (or (and (rest templates) ;; more than one template for same key
-                                             (yas--prompt-for-template templates))
-                                        (car templates))))
-         (where (if (region-active-p)
-                    (cons (region-beginning) (region-end))
-                  (cons (point) (point)))))
-    (if yas--current-template
-        (yas-expand-snippet (yas--template-content yas--current-template)
-                            (car where)
-                            (cdr where)
-                            (yas--template-expand-env yas--current-template))
-      (yas--message 3 "No snippets can be inserted here!"))))
-
-(defun yas-visit-snippet-file ()
-  "Choose a snippet to edit, selection like `yas-insert-snippet'.
-
-Only success if selected snippet was loaded from a file.  Put the
-visited file in `snippet-mode'."
-  (interactive)
-  (let* ((yas-buffer-local-condition 'always)
-         (templates (yas--all-templates (yas--get-snippet-tables)))
-         (yas-prompt-functions '(yas-ido-prompt yas-completing-prompt))
-         (template (and templates
-                        (or (yas--prompt-for-template templates
-                                                     "Choose a snippet template to edit: ")
-                            (car templates)))))
-
-    (if template
-        (yas--visit-snippet-file-1 template)
-      (message "No snippets tables active!"))))
-
-(defun yas--visit-snippet-file-1 (template)
-  (let ((file (yas--template-file template)))
-    (cond ((and file (file-readable-p file))
-           (find-file-other-window file)
-           (snippet-mode)
-           (set (make-local-variable 'yas--editing-template) template))
-          (file
-           (message "Original file %s no longer exists!" file))
-          (t
-           (switch-to-buffer (format "*%s*"(yas--template-name template)))
-           (let ((type 'snippet))
-             (when (listp (yas--template-content template))
-               (insert (format "# type: command\n"))
-               (setq type 'command))
-             (insert (format "# key: %s\n" (yas--template-key template)))
-             (insert (format "# name: %s\n" (yas--template-name template)))
-             (when (yas--template-keybinding template)
-               (insert (format "# binding: %s\n" (yas--template-keybinding template))))
-             (when (yas--template-expand-env template)
-               (insert (format "# expand-env: %s\n" (yas--template-expand-env template))))
-             (when (yas--template-condition template)
-               (insert (format "# condition: %s\n" (yas--template-condition template))))
-             (insert "# --\n")
-             (insert (if (eq type 'command)
-                         (pp-to-string (yas--template-content template))
-                       (yas--template-content template))))
-           (snippet-mode)
-           (set (make-local-variable 'yas--editing-template) template)))))
-
-(defun yas--guess-snippet-directories-1 (table)
-  "Guesses possible snippet subdirectories for TABLE."
-  (cons (yas--table-name table)
-        (mapcan #'(lambda (parent)
-                    (yas--guess-snippet-directories-1
-                     parent))
-                (yas--table-parents table))))
-
-(defun yas--guess-snippet-directories (&optional table)
-  "Try to guess suitable directories based on the current active
-tables (or optional TABLE).
-
-Returns a list of elemts (TABLE . DIRS) where TABLE is a
-`yas--table' object and DIRS is a list of all possible directories
-where snippets of table might exist."
-  (let ((main-dir (replace-regexp-in-string
-                   "/+$" ""
-                   (or (first (or (yas-snippet-dirs)
-                                  (setq yas-snippet-dirs '("~/.emacs.d/snippets")))))))
-        (tables (or (and table
-                         (list table))
-                    (yas--get-snippet-tables))))
-    ;; HACK! the snippet table created here is actually registered!
-    ;;
-    (unless (or table (gethash major-mode yas--tables))
-      (push (yas--table-get-create major-mode)
-            tables))
-
-    (mapcar #'(lambda (table)
-                (cons table
-                      (mapcar #'(lambda (subdir)
-                                  (concat main-dir "/" subdir))
-                              (yas--guess-snippet-directories-1 table))))
-            tables)))
-
-(defun yas--make-directory-maybe (table-and-dirs &optional main-table-string)
-  "Returns a dir inside  TABLE-AND-DIRS, prompts for creation if none exists."
-  (or (some #'(lambda (dir) (when (file-directory-p dir) dir)) (cdr table-and-dirs))
-      (let ((candidate (first (cdr table-and-dirs))))
-        (unless (file-writable-p (file-name-directory candidate))
-          (error (yas--format "%s is not writable." candidate)))
-        (if (y-or-n-p (format "Guessed directory (%s) for%s%s table \"%s\" does not exist! Create? "
-                              candidate
-                              (if (gethash (yas--table-mode (car table-and-dirs))
-                                           yas--tables)
-                                  ""
-                                " brand new")
-                              (or main-table-string
-                                  "")
-                              (yas--table-name (car table-and-dirs))))
-            (progn
-              (make-directory candidate 'also-make-parents)
-              ;; create the .yas-parents file here...
-              candidate)))))
-
-(defun yas-new-snippet (&optional no-template)
-  "Pops a new buffer for writing a snippet.
-
-Expands a snippet-writing snippet, unless the optional prefix arg
-NO-TEMPLATE is non-nil."
-  (interactive "P")
-  (let ((guessed-directories (yas--guess-snippet-directories)))
-
-    (switch-to-buffer "*new snippet*")
-    (erase-buffer)
-    (kill-all-local-variables)
-    (snippet-mode)
-    (yas-minor-mode 1)
-    (set (make-local-variable 'yas--guessed-modes) (mapcar #'(lambda (d)
-                                                              (yas--table-mode (car d)))
-                                                          guessed-directories))
-    (unless no-template (yas-expand-snippet "\
-# -*- mode: snippet -*-
-# name: $1
-# key: ${2:${1:$(replace-regexp-in-string \"\\\\\\\\(\\\\\\\\w+\\\\\\\\).*\" \"\\\\\\\\1\" yas-text)}}${3:
-# binding: ${4:direct-keybinding}}${5:
-# expand-env: ((${6:some-var} ${7:some-value}))}${8:
-# type: command}
-# --
-$0"))))
-
-(defun yas--compute-major-mode-and-parents (file)
-  "Given FILE, find the nearest snippet directory for a given
-mode, then return a list (MODE-SYM PARENTS), the mode's symbol and a list
-representing one or more of the mode's parents.
-
-Note that MODE-SYM need not be the symbol of a real major mode,
-neither do the elements of PARENTS."
-  (let* ((file-dir (and file
-                        (directory-file-name (or (some #'(lambda (special)
-                                                           (locate-dominating-file file special))
-                                                       '(".yas-setup.el"
-                                                         ".yas-make-groups"
-                                                         ".yas-parents"))
-                                                 (directory-file-name (file-name-directory file))))))
-         (parents-file-name (concat file-dir "/.yas-parents"))
-         (major-mode-name (and file-dir
-                               (file-name-nondirectory file-dir)))
-         (major-mode-sym (or (and major-mode-name
-                                  (intern major-mode-name))))
-         (parents (when (file-readable-p parents-file-name)
-                         (mapcar #'intern
-                                 (split-string
-                                  (with-temp-buffer
-                                    (insert-file-contents parents-file-name)
-                                    (buffer-substring-no-properties (point-min)
-                                                                    (point-max))))))))
-    (when major-mode-sym
-      (cons major-mode-sym parents))))
-
-(defvar yas--editing-template nil
-  "Supporting variable for `yas-load-snippet-buffer' and `yas--visit-snippet'")
-
-(defvar yas--current-template nil
-  "Holds the current template being expanded into a snippet.")
-
-(defvar yas--guessed-modes nil
-  "List of guessed modes supporting `yas-load-snippet-buffer'.")
-
-(defun yas-load-snippet-buffer (&optional kill)
-  "Parse and load current buffer's snippet definition.
-
-With optional prefix argument KILL quit the window and buffer."
-  (interactive "P")
-  (cond
-   ;;  We have `yas--editing-template', this buffer's
-   ;;  content comes from a template which is already loaded and
-   ;;  neatly positioned,...
-   ;;
-   (yas--editing-template
-    (yas-define-snippets-1 (yas--parse-template (yas--template-file yas--editing-template))
-                           (yas--template-table yas--editing-template)))
-   ;; Try to use `yas--guessed-modes'. If we don't have that use the
-   ;; value from `yas--compute-major-mode-and-parents'
-   ;;
-   (t
-    (unless yas--guessed-modes
-      (set (make-local-variable 'yas--guessed-modes) (or (yas--compute-major-mode-and-parents buffer-file-name))))
-    (let* ((prompt (if (and (featurep 'ido)
-                            ido-mode)
-                       'ido-completing-read 'completing-read))
-           (table (yas--table-get-create
-                   (intern
-                    (funcall prompt (format "Choose or enter a table (yas guesses %s): "
-                                            (if yas--guessed-modes
-                                                (first yas--guessed-modes)
-                                              "nothing"))
-                             (mapcar #'symbol-name yas--guessed-modes)
-                             nil
-                             nil
-                             nil
-                             nil
-                             (if (first yas--guessed-modes)
-                                 (symbol-name (first yas--guessed-modes))))))))
-      (set (make-local-variable 'yas--editing-template)
-           (yas-define-snippets-1 (yas--parse-template buffer-file-name)
-                                  table)))))
-  ;; Now, offer to save this iff:
-  ;;
-  ;; 1) `yas-snippet-dirs' is a list and its first element does not
-  ;; match this template's file (i.e. this is a library snippet, not
-  ;; a user snippet) OR
-  ;;
-  ;; 2) yas--editing-template comes from a file that we cannot write to...
-  ;;
-  (when (or (not (yas--template-file yas--editing-template))
-            (not (file-writable-p (yas--template-file yas--editing-template)))
-            (and (listp yas-snippet-dirs)
-                 (second yas-snippet-dirs)
-                 (not (string-match (expand-file-name (first yas-snippet-dirs))
-                                    (yas--template-file yas--editing-template)))))
-
-    (when (y-or-n-p (yas--format "Looks like a library or new snippet. Save to new file? "))
-      (let* ((option (first (yas--guess-snippet-directories (yas--template-table yas--editing-template))))
-             (chosen (and option
-                          (yas--make-directory-maybe option))))
-        (when chosen
-          (let ((default-file-name (or (and (yas--template-file yas--editing-template)
-                                            (file-name-nondirectory (yas--template-file yas--editing-template)))
-                                       (yas--template-name yas--editing-template))))
-            (write-file (concat chosen "/"
-                                (read-from-minibuffer (format "File name to create in %s? " chosen)
-                                                      default-file-name)))
-            (setf (yas--template-file yas--editing-template) buffer-file-name))))))
-  (when kill
-    (quit-window kill))
-  (yas--message 3 "Snippet \"%s\" loaded for %s."
-           (yas--template-name yas--editing-template)
-           (yas--table-name (yas--template-table yas--editing-template))))
-
-
-(defun yas-tryout-snippet (&optional debug)
-  "Test current buffers's snippet template in other buffer."
-  (interactive "P")
-  (let* ((major-mode-and-parent (yas--compute-major-mode-and-parents buffer-file-name))
-         (parsed (yas--parse-template))
-         (test-mode (or (and (car major-mode-and-parent)
-                             (fboundp (car major-mode-and-parent))
-                             (car major-mode-and-parent))
-                        (first yas--guessed-modes)
-                        (intern (read-from-minibuffer (yas--format "Please input a mode: ")))))
-         (yas--current-template
-          (and parsed
-               (fboundp test-mode)
-               (yas--populate-template (yas--make-blank-template)
-                                      :table       nil ;; no tables for ephemeral snippets
-                                      :key         (first parsed)
-                                      :content     (second parsed)
-                                      :name        (third parsed)
-                                      :expand-env  (sixth parsed)))))
-    (cond (yas--current-template
-           (let ((buffer-name (format "*testing snippet: %s*" (yas--template-name yas--current-template))))
-             (kill-buffer (get-buffer-create buffer-name))
-             (switch-to-buffer (get-buffer-create buffer-name))
-             (setq buffer-undo-list nil)
-             (condition-case nil (funcall test-mode) (error nil))
-             (setq buffer-read-only nil)
-             (yas-expand-snippet (yas--template-content yas--current-template)
-                                 (point-min)
-                                 (point-max)
-                                 (yas--template-expand-env yas--current-template))
-             (when (and debug
-                        (require 'yasnippet-debug nil t))
-               (add-hook 'post-command-hook 'yas-debug-snippet-vars nil t))))
-          (t
-           (yas--message 3 "Cannot test snippet for unknown major mode")))))
-
-(defun yas--template-fine-group (template)
-  (car (last (or (yas--template-group template)
-                 (yas--template-perm-group template)))))
-
-(defun yas-describe-tables (&optional choose)
-  "Display snippets for each table."
-  (interactive "P")
-  (let* ((by-name-hash (and choose
-                            (y-or-n-p "Show by namehash? ")))
-         (buffer (get-buffer-create "*YASnippet tables*"))
-         (active-tables (yas--get-snippet-tables))
-         (remain-tables (let ((all))
-                          (maphash #'(lambda (k v)
-                                       (unless (find v active-tables)
-                                         (push v all)))
-                                   yas--tables)
-                          all))
-         (table-lists (list active-tables remain-tables))
-         (original-buffer (current-buffer))
-         (continue t)
-         (yas--condition-cache-timestamp (current-time)))
-    (with-current-buffer buffer
-      (setq buffer-read-only nil)
-      (erase-buffer)
-      (cond ((not by-name-hash)
-             (insert "YASnippet tables: \n")
-             (while (and table-lists
-                         continue)
-               (dolist (table (car table-lists))
-                 (yas--describe-pretty-table table original-buffer))
-               (setq table-lists (cdr table-lists))
-               (when table-lists
-                 (yas--create-snippet-xrefs)
-                 (display-buffer buffer)
-                 (setq continue (and choose (y-or-n-p "Show also non-active tables? ")))))
-             (yas--create-snippet-xrefs)
-             (help-mode)
-             (goto-char 1))
-            (t
-             (insert "\n\nYASnippet tables by NAMEHASH: \n")
-             (dolist (table (append active-tables remain-tables))
-               (insert (format "\nSnippet table `%s':\n\n" (yas--table-name table)))
-               (let ((keys))
-                 (maphash #'(lambda (k v)
-                              (push k keys))
-                          (yas--table-hash table))
-                 (dolist (key keys)
-                   (insert (format "   key %s maps snippets: %s\n" key
-                                   (let ((names))
-                                     (maphash #'(lambda (k v)
-                                                  (push k names))
-                                              (gethash key (yas--table-hash table)))
-                                     names))))))))
-      (goto-char 1)
-      (setq buffer-read-only t))
-    (display-buffer buffer)))
-
-(defun yas--describe-pretty-table (table &optional original-buffer)
-  (insert (format "\nSnippet table `%s'"
-                  (yas--table-name table)))
-  (if (yas--table-parents table)
-      (insert (format " parents: %s\n"
-                      (mapcar #'yas--table-name
-                              (yas--table-parents table))))
-    (insert "\n"))
-  (insert (make-string 100 ?-) "\n")
-  (insert "group                   state name                                    key             binding\n")
-  (let ((groups-hash (make-hash-table :test #'equal)))
-    (maphash #'(lambda (k v)
-                 (let ((group (or (yas--template-fine-group v)
-                                  "(top level)")))
-                   (when (yas--template-name v)
-                     (puthash group
-                              (cons v (gethash group groups-hash))
-                              groups-hash))))
-             (yas--table-uuidhash table))
-    (maphash
-     #'(lambda (group templates)
-         (setq group (truncate-string-to-width group 25 0 ?  "..."))
-         (insert (make-string 100 ?-) "\n")
-         (dolist (p templates)
-           (let ((name (truncate-string-to-width (propertize (format "\\\\snippet `%s'" (yas--template-name p))
-                                                             'yasnippet p)
-                                                 50 0 ? "..."))
-                 (group (prog1 group
-                          (setq group (make-string (length group) ? ))))
-                 (condition-string (let ((condition (yas--template-condition p)))
-                                     (if (and condition
-                                              original-buffer)
-                                         (with-current-buffer original-buffer
-                                           (if (yas--eval-condition condition)
-                                               "(y)"
-                                             "(s)"))
-                                       "(a)"))))
-             (insert group " ")
-             (insert condition-string " ")
-             (insert name
-                     (if (string-match "\\.\\.\\.$" name)
-                         "'"
-                       " ")
-                     " ")
-             (insert (truncate-string-to-width (or (yas--template-key p) "")
-                                               15 0 ?  "...") " ")
-             (insert (truncate-string-to-width (key-description (yas--template-keybinding p))
-                                               15 0 ?  "...") " ")
-             (insert "\n"))))
-     groups-hash)))
-
-
-
-;;; User convenience functions, for using in snippet definitions
-
-(defvar yas-modified-p nil
-  "Non-nil if field has been modified by user or transformation.")
-
-(defvar yas-moving-away-p nil
-  "Non-nil if user is about to exit field.")
-
-(defvar yas-text nil
-  "Contains current field text.")
-
-(defun yas-substr (str pattern &optional subexp)
-  "Search PATTERN in STR and return SUBEXPth match.
-
-If found, the content of subexp group SUBEXP (default 0) is
-  returned, or else the original STR will be returned."
-  (let ((grp (or subexp 0)))
-    (save-match-data
-      (if (string-match pattern str)
-          (match-string-no-properties grp str)
-        str))))
-
-(defun yas-choose-value (possibilities)
-  "Prompt for a string in the list POSSIBILITIES and return it."
-  (unless (or yas-moving-away-p
-              yas-modified-p)
-    (some #'(lambda (fn)
-              (funcall fn "Choose: " possibilities))
-          yas-prompt-functions)))
-
-(defun yas-key-to-value (alist)
-  "Prompt for a string in the list POSSIBILITIES and return it."
-  (unless (or yas-moving-away-p
-              yas-modified-p)
-    (let ((key (read-key-sequence "")))
-      (when (stringp key)
-        (or (cdr (find key alist :key #'car :test #'string=))
-            key)))))
-
-(defun yas-throw (text)
-  "Throw a yas--exception with TEXT as the reason."
-  (throw 'yas--exception (cons 'yas--exception text)))
-
-(defun yas-verify-value (possibilities)
-  "Verify that the current field value is in POSSIBILITIES
-
-Otherwise throw exception."
-  (when (and yas-moving-away-p (notany #'(lambda (pos) (string= pos yas-text)) possibilities))
-    (yas-throw (yas--format "Field only allows %s" possibilities))))
-
-(defun yas-field-value (number)
-  "Get the string for field with NUMBER.
-
-Use this in primary and mirror transformations to tget."
-  (let* ((snippet (car (yas--snippets-at-point)))
-         (field (and snippet
-                     (yas--snippet-find-field snippet number))))
-    (when field
-      (yas--field-text-for-display field))))
-
-(defun yas-text ()
-  "Return `yas-text' if that exists and is non-empty, else nil."
-  (if (and yas-text
-           (not (string= "" yas-text)))
-      yas-text))
-
-;; (defun yas-selected-text ()
-;;   "Return `yas-selected-text' if that exists and is non-empty, else nil."
-;;   (if (and yas-selected-text
-;;            (not (string= "" yas-selected-text)))
-;;       yas-selected-text))
-
-(defun yas--get-field-once (number &optional transform-fn)
-  (unless yas-modified-p
-    (if transform-fn
-        (funcall transform-fn (yas-field-value number))
-      (yas-field-value number))))
-
-(defun yas-default-from-field (number)
-  (unless yas-modified-p
-    (yas-field-value number)))
-
-(defun yas-inside-string ()
-  (equal 'font-lock-string-face (get-char-property (1- (point)) 'face)))
-
-(defun yas-unimplemented (&optional missing-feature)
-  (if yas--current-template
-      (if (y-or-n-p (format "This snippet is unimplemented (missing %s) Visit the snippet definition? "
-                            (or missing-feature
-                                "something")))
-          (yas--visit-snippet-file-1 yas--current-template))
-    (message "No implementation. Missing %s" (or missing-feature "something"))))
-
-
-;;; Snippet expansion and field management
-
-(defvar yas--active-field-overlay nil
-  "Overlays the currently active field.")
-
-(defvar yas--field-protection-overlays nil
-  "Two overlays protect the current active field ")
-
-(defconst yas--prefix nil
-  "A prefix argument for expansion direct from keybindings")
-
-(defvar yas-selected-text nil
-  "The selected region deleted on the last snippet expansion.")
-
-(defvar yas--start-column nil
-  "The column where the snippet expansion started.")
-
-(make-variable-buffer-local 'yas--active-field-overlay)
-(make-variable-buffer-local 'yas--field-protection-overlays)
-(put 'yas--active-field-overlay 'permanent-local t)
-(put 'yas--field-protection-overlays 'permanent-local t)
-
-(defstruct (yas--snippet (:constructor yas--make-snippet ()))
-  "A snippet.
-
-..."
-  (fields '())
-  (exit nil)
-  (id (yas--snippet-next-id) :read-only t)
-  (control-overlay nil)
-  active-field
-  ;; stacked expansion: the `previous-active-field' slot saves the
-  ;; active field where the child expansion took place
-  previous-active-field
-  force-exit)
-
-(defstruct (yas--field (:constructor yas--make-field (number start end parent-field)))
-  "A field."
-  number
-  start end
-  parent-field
-  (mirrors '())
-  (transform nil)
-  (modified-p nil)
-  next)
-
-(defstruct (yas--mirror (:constructor yas--make-mirror (start end transform)))
-  "A mirror."
-  start end
-  (transform nil)
-  parent-field
-  next)
-
-(defstruct (yas--exit (:constructor yas--make-exit (marker)))
-  marker
-  next)
-
-(defun yas--apply-transform (field-or-mirror field &optional empty-on-nil-p)
-  "Calculate transformed string for FIELD-OR-MIRROR from FIELD.
-
-If there is no transform for ht field, return nil.
-
-If there is a transform but it returns nil, return the empty
-string iff EMPTY-ON-NIL-P is true."
-  (let* ((yas-text (yas--field-text-for-display field))
-         (text yas-text)
-         (yas-modified-p (yas--field-modified-p field))
-         (yas-moving-away-p nil)
-         (transform (if (yas--mirror-p field-or-mirror)
-                        (yas--mirror-transform field-or-mirror)
-                      (yas--field-transform field-or-mirror)))
-         (start-point (if (yas--mirror-p field-or-mirror)
-                          (yas--mirror-start field-or-mirror)
-                        (yas--field-start field-or-mirror)))
-         (transformed (and transform
-                           (save-excursion
-                             (goto-char start-point)
-                             (let ((ret (yas--eval-lisp transform)))
-                               (or ret (and empty-on-nil-p "")))))))
-    transformed))
-
-(defsubst yas--replace-all (from to &optional text)
-  "Replace all occurance from FROM to TO.
-
-With optional string TEXT do it in that string."
-  (if text
-      (replace-regexp-in-string (regexp-quote from) to text t t)
-    (goto-char (point-min))
-    (while (search-forward from nil t)
-      (replace-match to t t text))))
-
-(defun yas--snippet-find-field (snippet number)
-  (find-if #'(lambda (field)
-               (eq number (yas--field-number field)))
-           (yas--snippet-fields snippet)))
-
-(defun yas--snippet-sort-fields (snippet)
-  "Sort the fields of SNIPPET in navigation order."
-  (setf (yas--snippet-fields snippet)
-        (sort (yas--snippet-fields snippet)
-              #'yas--snippet-field-compare)))
-
-(defun yas--snippet-field-compare (field1 field2)
-  "Compare two fields. The field with a number is sorted first.
-If they both have a number, compare through the number. If neither
-have, compare through the field's start point"
-  (let ((n1 (yas--field-number field1))
-        (n2 (yas--field-number field2)))
-    (if n1
-        (if n2
-            (or (zerop n2) (and (not (zerop n1))
-                                (< n1 n2)))
-          (not (zerop n1)))
-      (if n2
-          (zerop n2)
-        (< (yas--field-start field1)
-           (yas--field-start field2))))))
-
-(defun yas--field-probably-deleted-p (snippet field)
-  "Guess if SNIPPET's FIELD should be skipped."
-  (and
-   ;; field must be zero lentgh
-   ;;
-   (zerop (- (yas--field-start field) (yas--field-end field)))
-   ;; skip if:
-   (or
-    ;;  1) is a nested field and it's been modified
-    ;;
-    (and (yas--field-parent-field field)
-         (yas--field-modified-p field))
-    ;;  2) ends just before the snippet end
-    ;;
-    (and (eq field (car (last (yas--snippet-fields snippet))))
-         (= (yas--field-start field) (overlay-end (yas--snippet-control-overlay snippet)))))
-   ;; the field numbered 0, just before the exit marker, should
-   ;; never be skipped
-   ;;
-   (not (zerop (yas--field-number field)))))
-
-(defun yas--snippets-at-point (&optional all-snippets)
-  "Return a sorted list of snippets at point, most recently
-inserted first."
-  (sort
-   (remove nil (remove-duplicates (mapcar #'(lambda (ov)
-                                              (overlay-get ov 'yas--snippet))
-                                          (if all-snippets
-                                              (overlays-in (point-min) (point-max))
-                                            (nconc (overlays-at (point)) (overlays-at (1- (point))))))))
-   #'(lambda (s1 s2)
-       (<= (yas--snippet-id s2) (yas--snippet-id s1)))))
-
-(defun yas-next-field-or-maybe-expand ()
-  "Try to expand a snippet at a key before point, otherwise
-delegate to `yas-next-field'."
-  (interactive)
-  (if yas-triggers-in-field
-      (let ((yas-fallback-behavior 'return-nil)
-            (active-field (overlay-get yas--active-field-overlay 'yas--field)))
-        (when active-field
-          (unless (yas-expand-from-trigger-key active-field)
-            (yas-next-field))))
-    (yas-next-field)))
-
-(defun yas-next-field (&optional arg)
-  "Navigate to next field.  If there's none, exit the snippet."
-  (interactive)
-  (let* ((arg (or arg
-                  1))
-         (snippet (first (yas--snippets-at-point)))
-         (active-field (overlay-get yas--active-field-overlay 'yas--field))
-         (live-fields (remove-if #'(lambda (field)
-                                     (and (not (eq field active-field))
-                                          (yas--field-probably-deleted-p snippet field)))
-                                 (yas--snippet-fields snippet)))
-         (active-field-pos (position active-field live-fields))
-         (target-pos (and active-field-pos (+ arg active-field-pos)))
-         (target-field (and target-pos (nth target-pos live-fields))))
-    ;; First check if we're moving out of a field with a transform
-    ;;
-    (when (and active-field
-               (yas--field-transform active-field))
-      (let* ((yas-moving-away-p t)
-             (yas-text (yas--field-text-for-display active-field))
-             (text yas-text)
-             (yas-modified-p (yas--field-modified-p active-field)))
-        ;; primary field transform: exit call to field-transform
-        (yas--eval-lisp (yas--field-transform active-field))))
-    ;; Now actually move...
-    (cond ((and target-pos (>= target-pos (length live-fields)))
-           (yas-exit-snippet snippet))
-          (target-field
-           (yas--move-to-field snippet target-field))
-          (t
-           nil))))
-
-(defun yas--place-overlays (snippet field)
-  "Correctly place overlays for SNIPPET's FIELD"
-  (yas--make-move-field-protection-overlays snippet field)
-  (yas--make-move-active-field-overlay snippet field))
-
-(defun yas--move-to-field (snippet field)
-  "Update SNIPPET to move to field FIELD.
-
-Also create some protection overlays"
-  (goto-char (yas--field-start field))
-  (yas--place-overlays snippet field)
-  (overlay-put yas--active-field-overlay 'yas--field field)
-  (let ((number (yas--field-number field)))
-    ;; check for the special ${0: ...} field
-    (if (and number (zerop number))
-        (progn
-          (set-mark (yas--field-end field))
-          (setf (yas--snippet-force-exit snippet)
-                (or (yas--field-transform field)
-                    t)))
-      ;; make this field active
-      (setf (yas--snippet-active-field snippet) field)
-      ;; primary field transform: first call to snippet transform
-      (unless (yas--field-modified-p field)
-        (if (yas--field-update-display field snippet)
-            (yas--update-mirrors snippet)
-          (setf (yas--field-modified-p field) nil))))))
-
-(defun yas-prev-field ()
-  "Navigate to prev field.  If there's none, exit the snippet."
-  (interactive)
-  (yas-next-field -1))
-
-(defun yas-abort-snippet (&optional snippet)
-  (interactive)
-  (let ((snippet (or snippet
-                     (car (yas--snippets-at-point)))))
-    (when snippet
-      (setf (yas--snippet-force-exit snippet) t))))
-
-(defun yas-exit-snippet (snippet)
-  "Goto exit-marker of SNIPPET."
-  (interactive (list (first (yas--snippets-at-point))))
-  (when snippet
-    (setf (yas--snippet-force-exit snippet) t)
-    (goto-char (if (yas--snippet-exit snippet)
-                   (yas--exit-marker (yas--snippet-exit snippet))
-                 (overlay-end (yas--snippet-control-overlay snippet))))))
-
-(defun yas-exit-all-snippets ()
-  "Exit all snippets."
-  (interactive)
-  (mapc #'(lambda (snippet)
-            (yas-exit-snippet snippet)
-            (yas--check-commit-snippet))
-        (yas--snippets-at-point 'all-snippets)))
-
-
-;;; Some low level snippet-routines:
-
-(defmacro yas--inhibit-overlay-hooks (&rest body)
-  "Run BODY with `yas--inhibit-overlay-hooks' set to t."
-  (declare (indent 0))
-  `(let ((yas--inhibit-overlay-hooks t))
-     (progn ,@body)))
-
-(defvar yas-snippet-beg nil "Beginning position of the last snippet commited.")
-(defvar yas-snippet-end nil "End position of the last snippet commited.")
-
-(defun yas--commit-snippet (snippet)
-  "Commit SNIPPET, but leave point as it is.  This renders the
-snippet as ordinary text."
-
-  (let ((control-overlay (yas--snippet-control-overlay snippet)))
-    ;;
-    ;; Save the end of the moribund snippet in case we need to revive it
-    ;; its original expansion.
-    ;;
-    (when (and control-overlay
-               (overlay-buffer control-overlay))
-      (setq yas-snippet-beg (overlay-start control-overlay))
-      (setq yas-snippet-end (overlay-end control-overlay))
-      (delete-overlay control-overlay))
-
-    (yas--inhibit-overlay-hooks
-      (when yas--active-field-overlay
-        (delete-overlay yas--active-field-overlay))
-      (when yas--field-protection-overlays
-        (mapc #'delete-overlay yas--field-protection-overlays)))
-
-    ;; stacked expansion: if the original expansion took place from a
-    ;; field, make sure we advance it here at least to
-    ;; `yas-snippet-end'...
-    ;;
-    (let ((previous-field (yas--snippet-previous-active-field snippet)))
-      (when (and yas-snippet-end previous-field)
-        (yas--advance-end-maybe previous-field yas-snippet-end)))
-
-    ;; Convert all markers to points,
-    ;;
-    (yas--markers-to-points snippet)
-
-    ;; Take care of snippet revival
-    ;;
-    (if yas-snippet-revival
-        (push `(apply yas--snippet-revive ,yas-snippet-beg ,yas-snippet-end ,snippet)
-              buffer-undo-list)
-      ;; Dismember the snippet... this is useful if we get called
-      ;; again from `yas--take-care-of-redo'....
-      (setf (yas--snippet-fields snippet) nil)))
-
-  (yas--message 3 "Snippet %s exited." (yas--snippet-id snippet)))
-
-(defun yas--safely-run-hooks (hook-var)
-  (condition-case error
-      (run-hooks hook-var)
-    (error
-     (yas--message 3 "%s error: %s" hook-var (error-message-string error)))))
-
-
-(defun yas--check-commit-snippet ()
-  "Checks if point exited the currently active field of the
-snippet, if so cleans up the whole snippet up."
-  (let* ((snippets (yas--snippets-at-point 'all-snippets))
-         (snippets-left snippets)
-         (snippet-exit-transform))
-    (dolist (snippet snippets)
-      (let ((active-field (yas--snippet-active-field snippet)))
-        (setq snippet-exit-transform (yas--snippet-force-exit snippet))
-        (cond ((or snippet-exit-transform
-                   (not (and active-field (yas--field-contains-point-p active-field))))
-               (setq snippets-left (delete snippet snippets-left))
-               (setf (yas--snippet-force-exit snippet) nil)
-               (yas--commit-snippet snippet))
-              ((and active-field
-                    (or (not yas--active-field-overlay)
-                        (not (overlay-buffer yas--active-field-overlay))))
-               ;;
-               ;; stacked expansion: this case is mainly for recent
-               ;; snippet exits that place us back int the field of
-               ;; another snippet
-               ;;
-               (save-excursion
-                 (yas--move-to-field snippet active-field)
-                 (yas--update-mirrors snippet)))
-              (t
-               nil))))
-    (unless (or (null snippets) snippets-left)
-      (if snippet-exit-transform
-          (yas--eval-lisp-no-saves snippet-exit-transform))
-      (yas--safely-run-hooks 'yas-after-exit-snippet-hook))))
-
-;; Apropos markers-to-points:
-;;
-;; This was found useful for performance reasons, so that an
-;; excessive number of live markers aren't kept around in the
-;; `buffer-undo-list'. However, in `markers-to-points', the
-;; set-to-nil markers can't simply be discarded and replaced with
-;; fresh ones in `points-to-markers'. The original marker that was
-;; just set to nil has to be reused.
-;;
-;; This shouldn't bring horrible problems with undo/redo, but it
-;; you never know
-;;
-(defun yas--markers-to-points (snippet)
-  "Convert all markers in SNIPPET to a cons (POINT . MARKER)
-where POINT is the original position of the marker and MARKER is
-the original marker object with the position set to nil."
-  (dolist (field (yas--snippet-fields snippet))
-    (let ((start (marker-position (yas--field-start field)))
-          (end (marker-position (yas--field-end field))))
-      (set-marker (yas--field-start field) nil)
-      (set-marker (yas--field-end field) nil)
-      (setf (yas--field-start field) (cons start (yas--field-start field)))
-      (setf (yas--field-end field) (cons end (yas--field-end field))))
-    (dolist (mirror (yas--field-mirrors field))
-      (let ((start (marker-position (yas--mirror-start mirror)))
-            (end (marker-position (yas--mirror-end mirror))))
-        (set-marker (yas--mirror-start mirror) nil)
-        (set-marker (yas--mirror-end mirror) nil)
-        (setf (yas--mirror-start mirror) (cons start (yas--mirror-start mirror)))
-        (setf (yas--mirror-end mirror) (cons end (yas--mirror-end mirror))))))
-  (let ((snippet-exit (yas--snippet-exit snippet)))
-    (when snippet-exit
-      (let ((exit (marker-position (yas--exit-marker snippet-exit))))
-        (set-marker (yas--exit-marker snippet-exit) nil)
-        (setf (yas--exit-marker snippet-exit) (cons exit (yas--exit-marker snippet-exit)))))))
-
-(defun yas--points-to-markers (snippet)
-  "Convert all cons (POINT . MARKER) in SNIPPET to markers. This
-is done by setting MARKER to POINT with `set-marker'."
-  (dolist (field (yas--snippet-fields snippet))
-    (setf (yas--field-start field) (set-marker (cdr (yas--field-start field))
-                                              (car (yas--field-start field))))
-    (setf (yas--field-end field) (set-marker (cdr (yas--field-end field))
-                                            (car (yas--field-end field))))
-    (dolist (mirror (yas--field-mirrors field))
-      (setf (yas--mirror-start mirror) (set-marker (cdr (yas--mirror-start mirror))
-                                                  (car (yas--mirror-start mirror))))
-      (setf (yas--mirror-end mirror) (set-marker (cdr (yas--mirror-end mirror))
-                                                (car (yas--mirror-end mirror))))))
-  (let ((snippet-exit (yas--snippet-exit snippet)))
-    (when snippet-exit
-      (setf (yas--exit-marker snippet-exit) (set-marker (cdr (yas--exit-marker snippet-exit))
-                                                       (car (yas--exit-marker snippet-exit)))))))
-
-(defun yas--field-contains-point-p (field &optional point)
-  (let ((point (or point
-                   (point))))
-    (and (>= point (yas--field-start field))
-         (<= point (yas--field-end field)))))
-
-(defun yas--field-text-for-display (field)
-  "Return the propertized display text for field FIELD.  "
-  (buffer-substring (yas--field-start field) (yas--field-end field)))
-
-(defun yas--undo-in-progress ()
-  "True if some kind of undo is in progress"
-  (or undo-in-progress
-      (eq this-command 'undo)
-      (eq this-command 'redo)))
-
-(defun yas--make-control-overlay (snippet start end)
-  "Creates the control overlay that surrounds the snippet and
-holds the keymap."
-  (let ((overlay (make-overlay start
-                               end
-                               nil
-                               nil
-                               t)))
-    (overlay-put overlay 'keymap yas-keymap)
-    (overlay-put overlay 'priority 100)
-    (overlay-put overlay 'yas--snippet snippet)
-    overlay))
-
-(defun yas-skip-and-clear-or-delete-char (&optional field)
-  "Clears unmodified field if at field start, skips to next tab.
-
-Otherwise deletes a character normally by calling `delete-char'."
-  (interactive)
-  (let ((field (or field
-                   (and yas--active-field-overlay
-                        (overlay-buffer yas--active-field-overlay)
-                        (overlay-get yas--active-field-overlay 'yas--field)))))
-    (cond ((and field
-                (not (yas--field-modified-p field))
-                (eq (point) (marker-position (yas--field-start field))))
-           (yas--skip-and-clear field)
-           (yas-next-field 1))
-          (t
-           (call-interactively 'delete-char)))))
-
-(defun yas--skip-and-clear (field)
-  "Deletes the region of FIELD and sets it modified state to t"
-  ;; Just before skipping-and-clearing the field, mark its children
-  ;; fields as modified, too. If the childen have mirrors-in-fields
-  ;; this prevents them from updating erroneously (we're skipping and
-  ;; deleting!).
-  ;;
-  (yas--mark-this-and-children-modified field)
-  (delete-region (yas--field-start field) (yas--field-end field)))
-
-(defun yas--mark-this-and-children-modified (field)
-  (setf (yas--field-modified-p field) t)
-  (let ((fom (yas--field-next field)))
-    (while (and fom
-                (yas--fom-parent-field fom))
-      (when (and (eq (yas--fom-parent-field fom) field)
-                 (yas--field-p fom))
-        (yas--mark-this-and-children-modified fom))
-      (setq fom (yas--fom-next fom)))))
-
-(defun yas--make-move-active-field-overlay (snippet field)
-  "Place the active field overlay in SNIPPET's FIELD.
-
-Move the overlay, or create it if it does not exit."
-  (if (and yas--active-field-overlay
-           (overlay-buffer yas--active-field-overlay))
-      (move-overlay yas--active-field-overlay
-                    (yas--field-start field)
-                    (yas--field-end field))
-    (setq yas--active-field-overlay
-          (make-overlay (yas--field-start field)
-                        (yas--field-end field)
-                        nil nil t))
-    (overlay-put yas--active-field-overlay 'priority 100)
-    (overlay-put yas--active-field-overlay 'face 'yas-field-highlight-face)
-    (overlay-put yas--active-field-overlay 'yas--snippet snippet)
-    (overlay-put yas--active-field-overlay 'modification-hooks '(yas--on-field-overlay-modification))
-    (overlay-put yas--active-field-overlay 'insert-in-front-hooks
-                 '(yas--on-field-overlay-modification))
-    (overlay-put yas--active-field-overlay 'insert-behind-hooks
-                 '(yas--on-field-overlay-modification))))
-
-(defvar yas--inhibit-overlay-hooks nil
-  "Bind this temporarity to non-nil to prevent running `yas--on-*-modification'.")
-
-(defun yas--on-field-overlay-modification (overlay after? beg end &optional length)
-  "Clears the field and updates mirrors, conditionally.
-
-Only clears the field if it hasn't been modified and it point it
-at field start. This hook doesn't do anything if an undo is in
-progress."
-  (unless (or yas--inhibit-overlay-hooks
-              (yas--undo-in-progress))
-    (let* ((field (overlay-get overlay 'yas--field))
-           (number (and field (yas--field-number field)))
-           (snippet (overlay-get yas--active-field-overlay 'yas--snippet)))
-      (cond (after?
-             (yas--advance-end-maybe field (overlay-end overlay))
-             (save-excursion
-               (yas--field-update-display field snippet))
-             (yas--update-mirrors snippet))
-            (field
-             (when (and (not after?)
-                        (not (yas--field-modified-p field))
-                        (eq (point) (if (markerp (yas--field-start field))
-                                        (marker-position (yas--field-start field))
-                                      (yas--field-start field))))
-               (yas--skip-and-clear field))
-             (setf (yas--field-modified-p field) t))))))
-
-;;; Apropos protection overlays:
-;;
-;; These exist for nasty users who will try to delete parts of the
-;; snippet outside the active field. Actual protection happens in
-;; `yas--on-protection-overlay-modification'.
-;;
-;; Currently this signals an error which inhibits the command. For
-;; commands that move point (like `kill-line'), point is restored in
-;; the `yas--post-command-handler' using a global
-;; `yas--protection-violation' variable.
-;;
-;; Alternatively, I've experimented with an implementation that
-;; commits the snippet before actually calling `this-command'
-;; interactively, and then signals an eror, which is ignored. but
-;; blocks all other million modification hooks. This presented some
-;; problems with stacked expansion.
-;;
-(defun yas--make-move-field-protection-overlays (snippet field)
-  "Place protection overlays surrounding SNIPPET's FIELD.
-
-Move the overlays, or create them if they do not exit."
-  (let ((start (yas--field-start field))
-        (end (yas--field-end field)))
-    ;; First check if the (1+ end) is contained in the buffer,
-    ;; otherwise we'll have to do a bit of cheating and silently
-    ;; insert a newline. the `(1+ (buffer-size))' should prevent this
-    ;; when using stacked expansion
-    ;;
-    (when (< (buffer-size) end)
-      (save-excursion
-        (yas--inhibit-overlay-hooks
-          (goto-char (point-max))
-          (newline))))
-    ;; go on to normal overlay creation/moving
-    ;;
-    (cond ((and yas--field-protection-overlays
-                (every #'overlay-buffer yas--field-protection-overlays))
-           (move-overlay (first yas--field-protection-overlays) (1- start) start)
-           (move-overlay (second yas--field-protection-overlays) end (1+ end)))
-          (t
-           (setq yas--field-protection-overlays
-                 (list (make-overlay (1- start) start nil t nil)
-                       (make-overlay end (1+ end) nil t nil)))
-           (dolist (ov yas--field-protection-overlays)
-             (overlay-put ov 'face 'yas--field-debug-face)
-             (overlay-put ov 'yas--snippet snippet)
-             ;; (overlay-put ov 'evaporate t)
-             (overlay-put ov 'modification-hooks '(yas--on-protection-overlay-modification)))))))
-
-(defvar yas--protection-violation nil
-  "When non-nil, signals attempts to erronesly exit or modify the snippet.
-
-Functions in the `post-command-hook', for example
-`yas--post-command-handler' can check it and reset its value to
-nil. The variables value is the point where the violation
-originated")
-
-(defun yas--on-protection-overlay-modification (overlay after? beg end &optional length)
-  "Signals a snippet violation, then issues error.
-
-The error should be ignored in `debug-ignored-errors'"
-  (unless yas--inhibit-overlay-hooks
-    (cond ((not (or after?
-                    (yas--undo-in-progress)))
-           (setq yas--protection-violation (point))
-           (error "Exit the snippet first!")))))
-
-(add-to-list 'debug-ignored-errors "^Exit the snippet first!$")
-
-
-;; Snippet expansion and "stacked" expansion:
-;;
-;; Stacked expansion is when you try to expand a snippet when already
-;; inside a snippet expansion.
-;;
-;; The parent snippet does not run its fields modification hooks
-;; (`yas--on-field-overlay-modification' and
-;; `yas--on-protection-overlay-modification') while the child snippet
-;; is active. This means, among other things, that the mirrors of the
-;; parent snippet are not updated, this only happening when one exits
-;; the child snippet.
-;;
-;; Unfortunately, this also puts some ugly (and not fully-tested)
-;; bits of code in `yas-expand-snippet' and
-;; `yas--commit-snippet'. I've tried to mark them with "stacked
-;; expansion:".
-;;
-;; This was thought to be safer in in an undo/redo perpective, but
-;; maybe the correct implementation is to make the globals
-;; `yas--active-field-overlay' and `yas--field-protection-overlays' be
-;; snippet-local and be active even while the child snippet is
-;; running. This would mean a lot of overlay modification hooks
-;; running, but if managed correctly (including overlay priorities)
-;; they should account for all situations...
-;;
-(defun yas-expand-snippet (content &optional start end expand-env)
-  "Expand snippet CONTENT at current point.
-
-Text between START and END will be deleted before inserting
-template. EXPAND-ENV is are let-style variable to value bindings
-considered when expanding the snippet."
-  (run-hooks 'yas-before-expand-snippet-hook)
-
-  ;; If a region is active, set `yas-selected-text'
-  (setq yas-selected-text
-        (when (region-active-p)
-          (prog1 (buffer-substring-no-properties (region-beginning)
-                                                 (region-end))
-            (unless start (setq start (region-beginning))
-                    (unless end (setq end (region-end)))))))
-
-  (when start
-    (goto-char start))
-
-  ;;
-  (let ((to-delete (and start end (buffer-substring-no-properties start end)))
-        (start (or start (point)))
-        (end (or end (point)))
-        snippet)
-    (setq yas--indent-original-column (current-column))
-    ;; Delete the region to delete, this *does* get undo-recorded.
-    ;;
-    (when (and to-delete
-               (> end start))
-      (delete-region start end))
-
-    (cond ((listp content)
-           ;; x) This is a snippet-command
-           ;;
-           (yas--eval-lisp-no-saves content))
-          (t
-           ;; x) This is a snippet-snippet :-)
-           ;;
-           ;;    Narrow the region down to the content, shoosh the
-           ;;    `buffer-undo-list', and create the snippet, the new
-           ;;    snippet updates its mirrors once, so we are left with
-           ;;    some plain text.  The undo action for deleting this
-           ;;    plain text will get recorded at the end.
-           ;;
-           ;;    stacked expansion: also shoosh the overlay modification hooks
-           (save-restriction
-             (narrow-to-region start start)
-             (let ((buffer-undo-list t))
-               ;; snippet creation might evaluate users elisp, which
-               ;; might generate errors, so we have to be ready to catch
-               ;; them mostly to make the undo information
-               ;;
-               (setq yas--start-column (save-restriction (widen) (current-column)))
-               (yas--inhibit-overlay-hooks
-                 (setq snippet
-                       (if expand-env
-                           (eval `(let* ,expand-env
-                                    (insert content)
-                                    (yas--snippet-create (point-min) (point-max))))
-                         (insert content)
-                         (yas--snippet-create (point-min) (point-max)))))))
-
-           ;; stacked-expansion: This checks for stacked expansion, save the
-           ;; `yas--previous-active-field' and advance its boudary.
-           ;;
-           (let ((existing-field (and yas--active-field-overlay
-                                      (overlay-buffer yas--active-field-overlay)
-                                      (overlay-get yas--active-field-overlay 'yas--field))))
-             (when existing-field
-               (setf (yas--snippet-previous-active-field snippet) existing-field)
-               (yas--advance-end-maybe existing-field (overlay-end yas--active-field-overlay))))
-
-           ;; Exit the snippet immediately if no fields
-           ;;
-           (unless (yas--snippet-fields snippet)
-             (yas-exit-snippet snippet))
-
-           ;; Push two undo actions: the deletion of the inserted contents of
-           ;; the new snippet (without the "key") followed by an apply of
-           ;; `yas--take-care-of-redo' on the newly inserted snippet boundaries
-           ;;
-           ;; A small exception, if `yas-also-auto-indent-first-line'
-           ;; is t and `yas--indent' decides to indent the line to a
-           ;; point before the actual expansion point, undo would be
-           ;; messed up. We call the early point "newstart"".  case,
-           ;; and attempt to fix undo.
-           ;;
-           (let ((newstart (overlay-start (yas--snippet-control-overlay snippet)))
-                 (end (overlay-end (yas--snippet-control-overlay snippet))))
-             (when (< newstart start)
-               (push (cons (make-string (- start newstart) ? ) newstart) buffer-undo-list))
-             (push (cons newstart end) buffer-undo-list)
-             (push `(apply yas--take-care-of-redo ,start ,end ,snippet)
-                   buffer-undo-list))
-           ;; Now, schedule a move to the first field
-           ;;
-           (let ((first-field (car (yas--snippet-fields snippet))))
-             (when first-field
-               (sit-for 0) ;; fix issue 125
-               (yas--move-to-field snippet first-field)))
-           (yas--message 3 "snippet expanded.")
-           t))))
-
-(defun yas--take-care-of-redo (beg end snippet)
-  "Commits SNIPPET, which in turn pushes an undo action for
-reviving it.
-
-Meant to exit in the `buffer-undo-list'."
-  ;; slightly optimize: this action is only needed for snippets with
-  ;; at least one field
-  (when (yas--snippet-fields snippet)
-    (yas--commit-snippet snippet)))
-
-(defun yas--snippet-revive (beg end snippet)
-  "Revives the SNIPPET and creates a control overlay from BEG to
-END.
-
-BEG and END are, we hope, the original snippets boudaries. All
-the markers/points exiting existing inside SNIPPET should point
-to their correct locations *at the time the snippet is revived*.
-
-After revival, push the `yas--take-care-of-redo' in the
-`buffer-undo-list'"
-  ;; Reconvert all the points to markers
-  ;;
-  (yas--points-to-markers snippet)
-  ;; When at least one editable field existed in the zombie snippet,
-  ;; try to revive the whole thing...
-  ;;
-  (let ((target-field (or (yas--snippet-active-field snippet)
-                          (car (yas--snippet-fields snippet)))))
-    (when target-field
-      (setf (yas--snippet-control-overlay snippet) (yas--make-control-overlay snippet beg end))
-      (overlay-put (yas--snippet-control-overlay snippet) 'yas--snippet snippet)
-
-      (yas--move-to-field snippet target-field)
-
-      (push `(apply yas--take-care-of-redo ,beg ,end ,snippet)
-            buffer-undo-list))))
-
-(defun yas--snippet-create (begin end)
-  "Creates a snippet from an template inserted between BEGIN and END.
-
-Returns the newly created snippet."
-  (let ((snippet (yas--make-snippet)))
-    (goto-char begin)
-    (yas--snippet-parse-create snippet)
-
-    ;; Sort and link each field
-    (yas--snippet-sort-fields snippet)
-
-    ;; Create keymap overlay for snippet
-    (setf (yas--snippet-control-overlay snippet)
-          (yas--make-control-overlay snippet (point-min) (point-max)))
-
-    ;; Move to end
-    (goto-char (point-max))
-
-    snippet))
-
-
-;;; Apropos adjacencies and "fom's":
-;;
-;; Once the $-constructs bits like "$n" and "${:n" are deleted in the
-;; recently expanded snippet, we might actually have many fields,
-;; mirrors (and the snippet exit) in the very same position in the
-;; buffer. Therefore we need to single-link the
-;; fields-or-mirrors-or-exit (which I have abbreviated to "fom")
-;; according to their original positions in the buffer.
-;;
-;; Then we have operation `yas--advance-end-maybe' and
-;; `yas--advance-start-maybe', which conditionally push the starts and
-;; ends of these foms down the chain.
-;;
-;; This allows for like the printf with the magic ",":
-;;
-;;   printf ("${1:%s}\\n"${1:$(if (string-match "%" text) "," "\);")}  \
-;;   $2${1:$(if (string-match "%" text) "\);" "")}$0
-;;
-(defun yas--fom-start (fom)
-  (cond ((yas--field-p fom)
-         (yas--field-start fom))
-        ((yas--mirror-p fom)
-         (yas--mirror-start fom))
-        (t
-         (yas--exit-marker fom))))
-
-(defun yas--fom-end (fom)
-  (cond ((yas--field-p fom)
-         (yas--field-end fom))
-        ((yas--mirror-p fom)
-         (yas--mirror-end fom))
-        (t
-         (yas--exit-marker fom))))
-
-(defun yas--fom-next (fom)
-  (cond ((yas--field-p fom)
-         (yas--field-next fom))
-        ((yas--mirror-p fom)
-         (yas--mirror-next fom))
-        (t
-         (yas--exit-next fom))))
-
-(defun yas--fom-parent-field (fom)
-  (cond ((yas--field-p fom)
-         (yas--field-parent-field fom))
-        ((yas--mirror-p fom)
-         (yas--mirror-parent-field fom))
-        (t
-         nil)))
-
-(defun yas--calculate-adjacencies (snippet)
-  "Calculate adjacencies for fields or mirrors of SNIPPET.
-
-This is according to their relative positions in the buffer, and
-has to be called before the $-constructs are deleted."
-  (flet ((yas--fom-set-next-fom (fom nextfom)
-                               (cond ((yas--field-p fom)
-                                      (setf (yas--field-next fom) nextfom))
-                                     ((yas--mirror-p fom)
-                                      (setf (yas--mirror-next fom) nextfom))
-                                     (t
-                                      (setf (yas--exit-next fom) nextfom))))
-         (yas--compare-fom-begs (fom1 fom2)
-                               (if (= (yas--fom-start fom2) (yas--fom-start fom1))
-                                   (yas--mirror-p fom2)
-                                 (>= (yas--fom-start fom2) (yas--fom-start fom1))))
-         (yas--link-foms (fom1 fom2)
-                        (yas--fom-set-next-fom fom1 fom2)))
-    ;; make some yas--field, yas--mirror and yas--exit soup
-    (let ((soup))
-      (when (yas--snippet-exit snippet)
-        (push (yas--snippet-exit snippet) soup))
-      (dolist (field (yas--snippet-fields snippet))
-        (push field soup)
-        (dolist (mirror (yas--field-mirrors field))
-          (push mirror soup)))
-      (setq soup
-            (sort soup
-                  #'yas--compare-fom-begs))
-      (when soup
-        (reduce #'yas--link-foms soup)))))
-
-(defun yas--calculate-mirrors-in-fields (snippet mirror)
-  "Attempt to assign a parent field of SNIPPET to the mirror MIRROR.
-
-Use the tighest containing field if more than one field contains
-the mirror. Intended to be called *before* the dollar-regions are
-deleted."
-  (let ((min (point-min))
-        (max (point-max)))
-    (dolist (field (yas--snippet-fields snippet))
-      (when (and (<= (yas--field-start field) (yas--mirror-start mirror))
-                 (<= (yas--mirror-end mirror) (yas--field-end field))
-               (< min (yas--field-start field))
-               (< (yas--field-end field) max))
-          (setq min (yas--field-start field)
-                max (yas--field-end field))
-          (setf (yas--mirror-parent-field mirror) field)))))
-
-(defun yas--advance-end-maybe (fom newend)
-  "Maybe advance FOM's end to NEWEND if it needs it.
-
-If it does, also:
-
-* call `yas--advance-start-maybe' on FOM's next fom.
-
-* in case FOM is field call `yas--advance-end-maybe' on its parent
-  field
-
-Also, if FOM is an exit-marker, always call
-`yas--advance-start-maybe' on its next fom. This is beacuse
-exit-marker have identical start and end markers.
-
-"
-  (cond ((and fom (< (yas--fom-end fom) newend))
-         (set-marker (yas--fom-end fom) newend)
-         (yas--advance-start-maybe (yas--fom-next fom) newend)
-         (yas--advance-end-of-parents-maybe (yas--fom-parent-field fom) newend))
-        ((yas--exit-p fom)
-         (yas--advance-start-maybe (yas--fom-next fom) newend))))
-
-(defun yas--advance-start-maybe (fom newstart)
-  "Maybe advance FOM's start to NEWSTART if it needs it.
-
-If it does, also call `yas--advance-end-maybe' on FOM."
-  (when (and fom (< (yas--fom-start fom) newstart))
-    (set-marker (yas--fom-start fom) newstart)
-    (yas--advance-end-maybe fom newstart)))
-
-(defun yas--advance-end-of-parents-maybe (field newend)
-  "Like `yas--advance-end-maybe' but for parent fields.
-
-Only works for fields and doesn't care about the start of the
-next FOM. Works its way up recursively for parents of parents."
-  (when (and field
-             (< (yas--field-end field) newend))
-    (set-marker (yas--field-end field) newend)
-    (yas--advance-end-of-parents-maybe (yas--field-parent-field field) newend)))
-
-(defvar yas--dollar-regions nil
-  "When expanding the snippet the \"parse-create\" functions add
-  cons cells to this var")
-
-(defun yas--snippet-parse-create (snippet)
-  "Parse a recently inserted snippet template, creating all
-necessary fields, mirrors and exit points.
-
-Meant to be called in a narrowed buffer, does various passes"
-  (let ((parse-start (point)))
-    ;; Reset the yas--dollar-regions
-    ;;
-    (setq yas--dollar-regions nil)
-    ;; protect escaped quote, backquotes and backslashes
-    ;;
-    (yas--protect-escapes nil `(?\\ ?` ?'))
-    ;; replace all backquoted expressions
-    ;;
-    (goto-char parse-start)
-    (yas--replace-backquotes)
-    ;; protect escapes again since previous steps might have generated
-    ;; more characters needing escaping
-    ;;
-    (goto-char parse-start)
-    (yas--protect-escapes)
-    ;; parse fields with {}
-    ;;
-    (goto-char parse-start)
-    (yas--field-parse-create snippet)
-    ;; parse simple mirrors and fields
-    ;;
-    (goto-char parse-start)
-    (yas--simple-mirror-parse-create snippet)
-    ;; parse mirror transforms
-    ;;
-    (goto-char parse-start)
-    (yas--transform-mirror-parse-create snippet)
-    ;; calculate adjacencies of fields and mirrors
-    ;;
-    (yas--calculate-adjacencies snippet)
-    ;; Delete $-constructs
-    ;;
-    (yas--delete-regions yas--dollar-regions)
-    ;; restore escapes
-    ;;
-    (goto-char parse-start)
-    (yas--restore-escapes)
-    ;; update mirrors for the first time
-    ;;
-    (yas--update-mirrors snippet)
-    ;; indent the best we can
-    ;;
-    (goto-char parse-start)
-    (yas--indent snippet)))
-
-(defun yas--indent-according-to-mode (snippet-markers)
-  "Indent current line according to mode, preserving
-SNIPPET-MARKERS."
-  ;;; Apropos indenting problems....
-  ;;
-  ;; `indent-according-to-mode' uses whatever `indent-line-function'
-  ;; is available. Some implementations of these functions delete text
-  ;; before they insert. If there happens to be a marker just after
-  ;; the text being deleted, the insertion actually happens after the
-  ;; marker, which misplaces it.
-  ;;
-  ;; This would also happen if we had used overlays with the
-  ;; `front-advance' property set to nil.
-  ;;
-  ;; This is why I have these `trouble-markers', they are the ones at
-  ;; they are the ones at the first non-whitespace char at the line
-  ;; (i.e. at `yas--real-line-beginning'. After indentation takes place
-  ;; we should be at the correct to restore them to. All other
-  ;; non-trouble-markers have been *pushed* and don't need special
-  ;; attention.
-  ;;
-  (goto-char (yas--real-line-beginning))
-  (let ((trouble-markers (remove-if-not #'(lambda (marker)
-                                            (= marker (point)))
-                                        snippet-markers)))
-    (save-restriction
-      (widen)
-      (condition-case err
-          (indent-according-to-mode)
-        (error (yas--message 3 "Warning: `yas--indent-according-to-mode' having problems running %s" indent-line-function)
-               nil)))
-    (mapc #'(lambda (marker)
-              (set-marker marker (point)))
-          trouble-markers)))
-
-(defvar yas--indent-original-column nil)
-(defun yas--indent (snippet)
-  (let ((snippet-markers (yas--collect-snippet-markers snippet)))
-    ;; Look for those $>
-    (save-excursion
-      (while (re-search-forward "$>" nil t)
-        (delete-region (match-beginning 0) (match-end 0))
-        (when (not (eq yas-indent-line 'auto))
-          (yas--indent-according-to-mode snippet-markers))))
-    ;; Now do stuff for 'fixed and 'auto
-    (save-excursion
-      (cond ((eq yas-indent-line 'fixed)
-             (while (and (zerop (forward-line))
-                         (zerop (current-column)))
-               (indent-to-column yas--indent-original-column)))
-            ((eq yas-indent-line 'auto)
-             (let ((end (set-marker (make-marker) (point-max)))
-                   (indent-first-line-p yas-also-auto-indent-first-line))
-               (while (and (zerop (if indent-first-line-p
-                                      (prog1
-                                          (forward-line 0)
-                                        (setq indent-first-line-p nil))
-                                    (forward-line 1)))
-                           (not (eobp))
-                           (<= (point) end))
-                 (yas--indent-according-to-mode snippet-markers))))
-            (t
-             nil)))))
-
-(defun yas--collect-snippet-markers (snippet)
-  "Make a list of all the markers used by SNIPPET."
-  (let (markers)
-    (dolist (field (yas--snippet-fields snippet))
-      (push (yas--field-start field) markers)
-      (push (yas--field-end field) markers)
-      (dolist (mirror (yas--field-mirrors field))
-        (push (yas--mirror-start mirror) markers)
-        (push (yas--mirror-end mirror) markers)))
-    (let ((snippet-exit (yas--snippet-exit snippet)))
-      (when (and snippet-exit
-                 (marker-buffer (yas--exit-marker snippet-exit)))
-        (push (yas--exit-marker snippet-exit) markers)))
-    markers))
-
-(defun yas--real-line-beginning ()
-  (let ((c (char-after (line-beginning-position)))
-        (n (line-beginning-position)))
-    (while (or (eql c ?\ )
-               (eql c ?\t))
-      (incf n)
-      (setq c (char-after n)))
-    n))
-
-(defun yas--escape-string (escaped)
-  (concat "YASESCAPE" (format "%d" escaped) "PROTECTGUARD"))
-
-(defun yas--protect-escapes (&optional text escaped)
-  "Protect all escaped characters with their numeric ASCII value.
-
-With optional string TEXT do it in string instead of buffer."
-  (let ((changed-text text)
-        (text-provided-p text))
-    (mapc #'(lambda (escaped)
-              (setq changed-text
-                    (yas--replace-all (concat "\\" (char-to-string escaped))
-                                     (yas--escape-string escaped)
-                                     (when text-provided-p changed-text))))
-          (or escaped yas--escaped-characters))
-    changed-text))
-
-(defun yas--restore-escapes (&optional text escaped)
-  "Restore all escaped characters from their numeric ASCII value.
-
-With optional string TEXT do it in string instead of the buffer."
-  (let ((changed-text text)
-        (text-provided-p text))
-    (mapc #'(lambda (escaped)
-              (setq changed-text
-                    (yas--replace-all (yas--escape-string escaped)
-                                     (char-to-string escaped)
-                                     (when text-provided-p changed-text))))
-          (or escaped yas--escaped-characters))
-    changed-text))
-
-(defun yas--replace-backquotes ()
-  "Replace all the \"`(lisp-expression)`\"-style expression
-	with their evaluated value"
-  (while (re-search-forward yas--backquote-lisp-expression-regexp nil t)
-    (let ((current-string (match-string 1)) transformed)
-      (delete-region (match-beginning 0) (match-end 0))
-      (setq transformed (yas--eval-lisp (yas--read-lisp (yas--restore-escapes current-string))))
-      (goto-char (match-beginning 0))
-      (when transformed (insert transformed)))))
-
-(defun yas--scan-sexps (from count)
-  (condition-case err
-      (with-syntax-table (standard-syntax-table)
-        (scan-sexps from count))
-    (error
-     nil)))
-
-(defun yas--make-marker (pos)
-  "Create a marker at POS with `nil' `marker-insertion-type'"
-  (let ((marker (set-marker (make-marker) pos)))
-    (set-marker-insertion-type marker nil)
-    marker))
-
-(defun yas--field-parse-create (snippet &optional parent-field)
-  "Parse most field expressions, except for the simple one \"$n\".
-
-The following count as a field:
-
-* \"${n: text}\", for a numbered field with default text, as long as N is not 0;
-
-* \"${n: text$(expression)}, the same with a lisp expression;
-  this is caught with the curiously named `yas--multi-dollar-lisp-expression-regexp'
-
-* the same as above but unnumbered, (no N:) and number is calculated automatically.
-
-When multiple expressions are found, only the last one counts."
-  ;;
-  (save-excursion
-    (while (re-search-forward yas--field-regexp nil t)
-      (let* ((real-match-end-0 (yas--scan-sexps (1+ (match-beginning 0)) 1))
-             (number (and (match-string-no-properties 1)
-                          (string-to-number (match-string-no-properties 1))))
-             (brand-new-field (and real-match-end-0
-                                   ;; break if on "$(" immediately
-                                   ;; after the ":", this will be
-                                   ;; caught as a mirror with
-                                   ;; transform later.
-                                   (not (save-match-data
-                                          (eq (string-match "$[ \t\n]*("
-                                                            (match-string-no-properties 2)) 0)))
-                                   ;; allow ${0: some exit text}
-                                   ;; (not (and number (zerop number)))
-                                   (yas--make-field number
-                                                   (yas--make-marker (match-beginning 2))
-                                                   (yas--make-marker (1- real-match-end-0))
-                                                   parent-field))))
-        (when brand-new-field
-          (goto-char real-match-end-0)
-          (push (cons (1- real-match-end-0) real-match-end-0)
-                yas--dollar-regions)
-          (push (cons (match-beginning 0) (match-beginning 2))
-                yas--dollar-regions)
-          (push brand-new-field (yas--snippet-fields snippet))
-          (save-excursion
-            (save-restriction
-              (narrow-to-region (yas--field-start brand-new-field) (yas--field-end brand-new-field))
-              (goto-char (point-min))
-              (yas--field-parse-create snippet brand-new-field)))))))
-  ;; if we entered from a parent field, now search for the
-  ;; `yas--multi-dollar-lisp-expression-regexp'. THis is used for
-  ;; primary field transformations
-  ;;
-  (when parent-field
-    (save-excursion
-      (while (re-search-forward yas--multi-dollar-lisp-expression-regexp nil t)
-        (let* ((real-match-end-1 (yas--scan-sexps (match-beginning 1) 1)))
-          ;; commit the primary field transformation if:
-          ;;
-          ;; 1. we don't find it in yas--dollar-regions (a subnested
-          ;; field) might have already caught it.
-          ;;
-          ;; 2. we really make sure we have either two '$' or some
-          ;; text and a '$' after the colon ':'. This is a FIXME: work
-          ;; my regular expressions and end these ugly hacks.
-          ;;
-          (when (and real-match-end-1
-                     (not (member (cons (match-beginning 0)
-                                        real-match-end-1)
-                                  yas--dollar-regions))
-                     (not (eq ?:
-                              (char-before (1- (match-beginning 1))))))
-            (let ((lisp-expression-string (buffer-substring-no-properties (match-beginning 1)
-                                                                          real-match-end-1)))
-              (setf (yas--field-transform parent-field)
-                    (yas--read-lisp (yas--restore-escapes lisp-expression-string))))
-            (push (cons (match-beginning 0) real-match-end-1)
-                  yas--dollar-regions)))))))
-
-(defun yas--transform-mirror-parse-create (snippet)
-  "Parse the \"${n:$(lisp-expression)}\" mirror transformations."
-  (while (re-search-forward yas--transform-mirror-regexp nil t)
-    (let* ((real-match-end-0 (yas--scan-sexps (1+ (match-beginning 0)) 1))
-           (number (string-to-number (match-string-no-properties 1)))
-           (field (and number
-                       (not (zerop number))
-                       (yas--snippet-find-field snippet number)))
-           (brand-new-mirror
-            (and real-match-end-0
-                 field
-                 (yas--make-mirror (yas--make-marker (match-beginning 0))
-                                  (yas--make-marker (match-beginning 0))
-                                  (yas--read-lisp
-                                   (yas--restore-escapes
-                                    (buffer-substring-no-properties (match-beginning 2)
-                                                                    (1- real-match-end-0))))))))
-      (when brand-new-mirror
-        (push brand-new-mirror
-              (yas--field-mirrors field))
-        (yas--calculate-mirrors-in-fields snippet brand-new-mirror)
-        (push (cons (match-beginning 0) real-match-end-0) yas--dollar-regions)))))
-
-(defun yas--simple-mirror-parse-create (snippet)
-  "Parse the simple \"$n\" fields/mirrors/exitmarkers."
-  (while (re-search-forward yas--simple-mirror-regexp nil t)
-    (let ((number (string-to-number (match-string-no-properties 1))))
-      (cond ((zerop number)
-
-             (setf (yas--snippet-exit snippet)
-                   (yas--make-exit (yas--make-marker (match-end 0))))
-             (save-excursion
-               (goto-char (match-beginning 0))
-               (when yas-wrap-around-region
-                 (cond (yas-selected-text
-                        (insert yas-selected-text))
-                       ((and (eq yas-wrap-around-region 'cua)
-                             cua-mode
-                             (get-register ?0))
-                        (insert (prog1 (get-register ?0)
-                                  (set-register ?0 nil))))))
-               (push (cons (point) (yas--exit-marker (yas--snippet-exit snippet)))
-                     yas--dollar-regions)))
-            (t
-             (let ((field (yas--snippet-find-field snippet number)))
-               (if field
-                   (let ((brand-new-mirror (yas--make-mirror
-                                            (yas--make-marker (match-beginning 0))
-                                            (yas--make-marker (match-beginning 0))
-                                            nil)))
-                     (push brand-new-mirror
-                           (yas--field-mirrors field))
-                     (yas--calculate-mirrors-in-fields snippet brand-new-mirror))
-                 (push (yas--make-field number
-                                       (yas--make-marker (match-beginning 0))
-                                       (yas--make-marker (match-beginning 0))
-                                       nil)
-                       (yas--snippet-fields snippet))))
-             (push (cons (match-beginning 0) (match-end 0))
-                   yas--dollar-regions))))))
-
-(defun yas--delete-regions (regions)
-  "Sort disjuct REGIONS by start point, then delete from the back."
-  (mapc #'(lambda (reg)
-            (delete-region (car reg) (cdr reg)))
-        (sort regions
-              #'(lambda (r1 r2)
-                  (>= (car r1) (car r2))))))
-
-(defun yas--update-mirrors (snippet)
-  "Updates all the mirrors of SNIPPET."
-  (save-excursion
-    (let* ((fields (copy-list (yas--snippet-fields snippet)))
-           (field (car fields)))
-      (while field
-        (dolist (mirror (yas--field-mirrors field))
-          (let ((mirror-parent-field (yas--mirror-parent-field mirror)))
-            ;; updatte this mirror
-            ;;
-            (yas--mirror-update-display mirror field)
-            ;; for mirrors-in-fields: schedule a possible
-            ;; parent field for reupdting later on
-            ;;
-            (when mirror-parent-field
-              (add-to-list 'fields mirror-parent-field 'append #'eq))
-            ;; `yas--place-overlays' is needed if the active field and
-            ;; protected overlays have been changed because of insertions
-            ;; in `yas--mirror-update-display'
-            ;;
-            (when (eq field (yas--snippet-active-field snippet))
-              (yas--place-overlays snippet field))))
-        (setq fields (cdr fields))
-        (setq field (car fields))))))
-
-(defun yas--mirror-update-display (mirror field)
-  "Update MIRROR according to FIELD (and mirror transform)."
-
-  (let* ((mirror-parent-field (yas--mirror-parent-field mirror))
-         (reflection (and (not (and mirror-parent-field
-                                    (yas--field-modified-p mirror-parent-field)))
-                          (or (yas--apply-transform mirror field 'empty-on-nil)
-                              (yas--field-text-for-display field)))))
-    (when (and reflection
-               (not (string= reflection (buffer-substring-no-properties (yas--mirror-start mirror)
-                                                                        (yas--mirror-end mirror)))))
-      (goto-char (yas--mirror-start mirror))
-      (yas--inhibit-overlay-hooks
-        (insert reflection))
-      (if (> (yas--mirror-end mirror) (point))
-          (delete-region (point) (yas--mirror-end mirror))
-        (set-marker (yas--mirror-end mirror) (point))
-        (yas--advance-start-maybe (yas--mirror-next mirror) (point))
-        ;; super-special advance
-        (yas--advance-end-of-parents-maybe mirror-parent-field (point))))))
-
-(defun yas--field-update-display (field snippet)
-  "Much like `yas--mirror-update-display', but for fields"
-  (when (yas--field-transform field)
-    (let ((transformed (and (not (eq (yas--field-number field) 0))
-                            (yas--apply-transform field field)))
-          (point (point)))
-      (when (and transformed
-                 (not (string= transformed (buffer-substring-no-properties (yas--field-start field)
-                                                                           (yas--field-end field)))))
-        (setf (yas--field-modified-p field) t)
-        (goto-char (yas--field-start field))
-        (yas--inhibit-overlay-hooks
-          (insert transformed)
-          (if (> (yas--field-end field) (point))
-              (delete-region (point) (yas--field-end field))
-            (set-marker (yas--field-end field) (point))
-            (yas--advance-start-maybe (yas--field-next field) (point)))
-          t)))))
-
-
-;;; Post-command hook:
-
-(defun yas--post-command-handler ()
-  "Handles various yasnippet conditions after each command."
-  (cond (yas--protection-violation
-         (goto-char yas--protection-violation)
-         (setq yas--protection-violation nil))
-        ((eq 'undo this-command)
-         ;;
-         ;; After undo revival the correct field is sometimes not
-         ;; restored correctly, this condition handles that
-         ;;
-         (let* ((snippet (car (yas--snippets-at-point)))
-                (target-field (and snippet
-                                   (find-if-not #'(lambda (field)
-                                                    (yas--field-probably-deleted-p snippet field))
-                                                (remove nil
-                                                        (cons (yas--snippet-active-field snippet)
-                                                              (yas--snippet-fields snippet)))))))
-           (when target-field
-             (yas--move-to-field snippet target-field))))
-        ((not (yas--undo-in-progress))
-         ;; When not in an undo, check if we must commit the snippet
-         ;; (user exited it).
-         (yas--check-commit-snippet))))
-
-;;; Fancy docs:
-;;
-;; The docstrings for some functions are generated dynamically
-;; depending on the context.
-;;
-(put 'yas-expand  'function-documentation
-     '(yas--expand-from-trigger-key-doc))
-(defun yas--expand-from-trigger-key-doc ()
-  "A doc synthethizer for `yas--expand-from-trigger-key-doc'."
-  (let ((fallback-description
-         (cond ((eq yas-fallback-behavior 'call-other-command)
-                (let* ((yas-minor-mode nil)
-                       (fallback (key-binding (read-kbd-macro yas-trigger-key))))
-                  (or (and fallback
-                           (format " call command `%s'." (pp-to-string fallback)))
-                      " do nothing.")))
-               ((eq yas-fallback-behavior 'return-nil)
-                ", do nothing.")
-               (t
-                ", defer to `yas--fallback-behaviour' :-)"))))
-    (concat "Expand a snippet before point. If no snippet
-expansion is possible,"
-            fallback-description
-            "\n\nOptional argument FIELD is for non-interactive use and is an
-object satisfying `yas--field-p' to restrict the expansion to.")))
-
-(put 'yas-expand-from-keymap  'function-documentation '(yas--expand-from-keymap-doc))
-(defun yas--expand-from-keymap-doc ()
-  "A doc synthethizer for `yas--expand-from-keymap-doc'."
-  (add-hook 'temp-buffer-show-hook 'yas--snippet-description-finish-runonce)
-  (concat "Expand/run snippets from keymaps, possibly falling back to original binding.\n"
-          (when (eq this-command 'describe-key)
-            (let* ((vec (this-single-command-keys))
-                   (templates (mapcan #'(lambda (table)
-                                          (yas--fetch table vec))
-                                      (yas--get-snippet-tables)))
-                   (yas--direct-keymaps nil)
-                   (fallback (key-binding vec)))
-              (concat "In this case, "
-                      (when templates
-                        (concat "these snippets are bound to this key:\n"
-                                (yas--template-pretty-list templates)
-                                "\n\nIf none of these expands, "))
-                      (or (and fallback
-                               (format "fallback `%s' will be called." (pp-to-string fallback)))
-                          "no fallback keybinding is called."))))))
-
-(defun yas--template-pretty-list (templates)
-  (let ((acc)
-        (yas-buffer-local-condition 'always))
-    (dolist (plate templates)
-      (setq acc (concat acc "\n*) "
-                        (propertize (concat "\\\\snippet `" (car plate) "'")
-                                    'yasnippet (cdr plate)))))
-    acc))
-
-(define-button-type 'help-snippet-def
-  :supertype 'help-xref
-  'help-function (lambda (template) (yas--visit-snippet-file-1 template))
-  'help-echo (purecopy "mouse-2, RET: find snippets's definition"))
-
-(defun yas--snippet-description-finish-runonce ()
-  "Final adjustments for the help buffer when snippets are concerned."
-  (yas--create-snippet-xrefs)
-  (remove-hook 'temp-buffer-show-hook 'yas--snippet-description-finish-runonce))
-
-(defun yas--create-snippet-xrefs ()
-  (save-excursion
-    (goto-char (point-min))
-    (while (search-forward-regexp "\\\\\\\\snippet[ \s\t]+`\\([^']+\\)'" nil t)
-      (let ((template (get-text-property (match-beginning 1)
-                                         'yasnippet)))
-        (when template
-          (help-xref-button 1 'help-snippet-def template)
-          (kill-region (match-end 1) (match-end 0))
-          (kill-region (match-beginning 0) (match-beginning 1)))))))
-
-(defun yas--expand-uuid (mode-symbol uuid &optional start end expand-env)
-  "Expand a snippet registered in MODE-SYMBOL's table with UUID.
-
-Remaining args as in `yas-expand-snippet'."
-  (let* ((table (gethash mode-symbol yas--tables))
-         (yas--current-template (and table
-                                    (gethash uuid (yas--table-uuidhash table)))))
-    (when yas--current-template
-      (yas-expand-snippet (yas--template-content yas--current-template)))))
-
-;;; Utils
-
-(defvar yas-verbosity 4
-  "Log level for `yas--message' 4 means trace most anything, 0 means nothing.")
-
-(defun yas--message (level message &rest args)
-  (when (> yas-verbosity level)
-    (message (apply #'yas--format message args))))
-
-(defun yas--format (format-control &rest format-args)
-  (apply #'format (concat "[yas] " format-control) format-args))
-
-
-;;; Some hacks:
-;;
-;; The functions
-;;
-;; `locate-dominating-file'
-;; `region-active-p'
-;;
-;; added for compatibility in emacsen < 23
-(unless (>= emacs-major-version 23)
-  (unless (fboundp 'region-active-p)
-    (defun region-active-p ()  (and transient-mark-mode mark-active)))
-
-  (unless (fboundp 'locate-dominating-file)
-    (defvar locate-dominating-stop-dir-regexp
-      "\\`\\(?:[\\/][\\/][^\\/]+[\\/]\\|/\\(?:net\\|afs\\|\\.\\.\\.\\)/\\)\\'"
-      "Regexp of directory names which stop the search in `locate-dominating-file'.
-Any directory whose name matches this regexp will be treated like
-a kind of root directory by `locate-dominating-file' which will stop its search
-when it bumps into it.
-The default regexp prevents fruitless and time-consuming attempts to find
-special files in directories in which filenames are interpreted as hostnames,
-or mount points potentially requiring authentication as a different user.")
-
-    (defun locate-dominating-file (file name)
-      "Look up the directory hierarchy from FILE for a file named NAME.
-Stop at the first parent directory containing a file NAME,
-and return the directory.  Return nil if not found."
-      ;; We used to use the above locate-dominating-files code, but the
-      ;; directory-files call is very costly, so we're much better off doing
-      ;; multiple calls using the code in here.
-      ;;
-      ;; Represent /home/luser/foo as ~/foo so that we don't try to look for
-      ;; `name' in /home or in /.
-      (setq file (abbreviate-file-name file))
-      (let ((root nil)
-            (prev-file file)
-            ;; `user' is not initialized outside the loop because
-            ;; `file' may not exist, so we may have to walk up part of the
-            ;; hierarchy before we find the "initial UUID".
-            (user nil)
-            try)
-        (while (not (or root
-                        (null file)
-                        ;; FIXME: Disabled this heuristic because it is sometimes
-                        ;; inappropriate.
-                        ;; As a heuristic, we stop looking up the hierarchy of
-                        ;; directories as soon as we find a directory belonging
-                        ;; to another user.  This should save us from looking in
-                        ;; things like /net and /afs.  This assumes that all the
-                        ;; files inside a project belong to the same user.
-                        ;; (let ((prev-user user))
-                        ;;   (setq user (nth 2 (file-attributes file)))
-                        ;;   (and prev-user (not (equal user prev-user))))
-                        (string-match locate-dominating-stop-dir-regexp file)))
-          (setq try (file-exists-p (expand-file-name name file)))
-          (cond (try (setq root file))
-                ((equal file (setq prev-file file
-                                   file (file-name-directory
-                                         (directory-file-name file))))
-                 (setq file nil))))
-        root))))
-
-;; `c-neutralize-syntax-in-CPP` sometimes fires "End of Buffer" error
-;; (when it execute forward-char) and interrupt the after change
-;; hook. Thus prevent the insert-behind hook of yasnippet to be
-;; invoked. Here's a way to reproduce it:
-
-;; # open a *new* Emacs.
-;; # load yasnippet.
-;; # open a *new* .cpp file.
-;; # input "inc" and press TAB to expand the snippet.
-;; # select the `#include <...>` snippet.
-;; # type inside `<>`
-
-(defadvice c-neutralize-syntax-in-CPP
-  (around yas--mp/c-neutralize-syntax-in-CPP activate)
-  "Adviced `c-neutralize-syntax-in-CPP' to properly
-handle the end-of-buffer error fired in it by calling
-`forward-char' at the end of buffer."
-  (condition-case err
-      ad-do-it
-    (error (message (error-message-string err)))))
-
-;; disable c-electric-* serial command in YAS fields
-(add-hook 'c-mode-common-hook
-          '(lambda ()
-             (dolist (k '(":" ">" ";" "<" "{" "}"))
-               (define-key (symbol-value (make-local-variable 'yas-keymap))
-                 k 'self-insert-command))))
-
-;;; Backward compatibility to to yasnippet <= 0.7
-(defvar yas--exported-syms '(;; `defcustom's
-                             ;;
-                             yas-snippet-dirs
-                             yas-prompt-functions
-                             yas-indent-line
-                             yas-also-auto-indent-first-line
-                             yas-snippet-revival
-                             yas-trigger-key
-                             yas-next-field-key
-                             yas-prev-field-key
-                             yas-skip-and-clear-key
-                             yas-triggers-in-field
-                             yas-fallback-behavior
-                             yas-choose-keys-first
-                             yas-choose-tables-first
-                             yas-use-menu
-                             yas-trigger-symbol
-                             yas-wrap-around-region
-                             yas-good-grace
-                             yas-visit-from-menu
-                             yas-expand-only-for-last-commands
-                             yas-field-highlight-face
-
-                             ;; these vars can be customized as well
-                             ;;
-                             yas-keymap
-                             yas-verbosity
-                             yas-extra-modes
-                             yas-key-syntaxes
-                             yas-after-exit-snippet-hook
-                             yas-before-expand-snippet-hook
-                             yas-buffer-local-condition
-
-                             ;; prompting functions
-                             ;;
-                             yas-x-prompt
-                             yas-ido-prompt
-                             yas-no-prompt
-                             yas-completing-prompt
-                             yas-dropdown-prompt
-
-                             ;; interactive functions
-                             ;;
-                             yas-expand
-                             yas-minor-mode
-                             yas-global-mode
-                             yas-direct-keymaps-reload
-                             yas-minor-mode-on
-                             yas-load-directory
-                             yas-reload-all
-                             yas-compile-directory
-                             yas-recompile-all
-                             yas-about
-                             yas-expand-from-trigger-key
-                             yas-expand-from-keymap
-                             yas-insert-snippet
-                             yas-visit-snippet-file
-                             yas-new-snippet
-                             yas-load-snippet-buffer
-                             yas-tryout-snippet
-                             yas-describe-tables
-                             yas-next-field-or-maybe-expand
-                             yas-next-field
-                             yas-prev-field
-                             yas-abort-snippet
-                             yas-exit-snippet
-                             yas-exit-all-snippets
-                             yas-skip-and-clear-or-delete-char
-
-                             ;; symbols that I "exported" for use
-                             ;; in snippets and hookage
-                             ;;
-                             yas-expand-snippet
-                             yas-define-snippets
-                             yas-define-menu
-                             yas-snippet-beg
-                             yas-snippet-end
-                             yas-modified-p
-                             yas-moving-away-p
-                             yas-text
-                             yas-substr
-                             yas-choose-value
-                             yas-key-to-value
-                             yas-throw
-                             yas-verify-value
-                             yas-field-value
-                             yas-text
-                             yas-selected-text
-                             yas-default-from-field
-                             yas-inside-string
-                             yas-unimplemented
-                             yas-define-condition-cache
-                             yas-hippie-try-expand
-
-                             ;; debug definitions
-                             ;; yas-debug-snippet-vars
-                             ;; yas-exterminate-package
-                             ;; yas-debug-test
-
-                             ;; testing definitions
-                             ;; yas-should-expand
-                             ;; yas-should-not-expand
-                             ;; yas-mock-insert
-                             ;; yas-make-file-or-dirs
-                             ;; yas-variables
-                             ;; yas-saving-variables
-                             ;; yas-call-with-snippet-dirs
-                             ;; yas-with-snippet-dirs
-))
-
-(dolist (sym yas--exported-syms)
-  (let ((backported (intern (replace-regexp-in-string "^yas-" "yas/" (symbol-name sym)))))
-    (when (boundp sym)
-      (make-obsolete-variable backported sym "yasnippet 0.8")
-      (defvaralias backported sym))
-    (when (fboundp sym)
-      (make-obsolete backported sym "yasnippet 0.8")
-      (defalias backported sym))))
-
-
-(provide 'yasnippet)
-
-;;; yasnippet.el ends here
-;; Local Variables:
-;; coding: utf-8
-;; End:
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1.signed
@@ -0,0 +1,1 @@
+Good signature from 474F05837FBDEF9B GNU ELPA Signing Agent <elpasign@elpa.gnu.org> (trust undefined) created at 2016-04-04T05:05:02-0400 using DSA
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/.gitmodules
@@ -0,0 +1,7 @@
+[submodule "snippets"]
+        path = snippets
+        url = https://github.com/AndreaCrotti/yasnippet-snippets.git
+        branch = master
+[submodule "yasmate"]
+        path = yasmate
+        url = https://github.com/capitaomorte/yasmate.git
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/.travis.yml
@@ -0,0 +1,24 @@
+language: emacs
+
+env:
+  - "EMACS=emacs23"
+  - "EMACS=emacs24"
+
+install:
+  - if [ "$EMACS" = "emacs23" ]; then
+        sudo apt-get -qq update &&
+        sudo apt-get -qq -f install &&
+        sudo apt-get -qq install emacs23-nox &&
+        curl -LO https://raw.githubusercontent.com/ohler/ert/c619b56c5bc6a866e33787489545b87d79973205/lisp/emacs-lisp/ert.el &&
+        curl -LO https://raw.githubusercontent.com/ohler/ert/c619b56c5bc6a866e33787489545b87d79973205/lisp/emacs-lisp/ert-x.el &&
+        curl -Lo cl-lib.el http://elpa.gnu.org/packages/cl-lib-0.5.el;
+    fi
+  - if [ "$EMACS" = "emacs24" ]; then
+        sudo add-apt-repository -y ppa:cassou/emacs &&
+        sudo apt-get -qq update &&
+        sudo apt-get -qq -f install &&
+        sudo apt-get -qq install emacs24-nox;
+    fi
+
+script:
+  - rake compile; rake tests
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# Submitting Bug Reports
+
+Please read [Important note regarding bug reporting][bugnote].
+
+# Contributing to Yasnippet
+
+## Copyright Assignment
+
+Yasnippet is part of GNU ELPA, so it falls under the same copyright
+assignment policy as the rest of Emacs (see "Copyright Assignment" in
+https://www.gnu.org/software/emacs/CONTRIBUTE). A copyright assignment
+for Emacs also covers Yasnippet.
+
+## Commit message format
+
+The commit message format roughly follows Emacs conventions, although
+there is no separate Changelog file.
+
+    The commit message's first sentence should be capitalized, no period
+
+    It may be followed by a paragraph with a longer explanation. The
+    changelog style entry goes at the end of the message.
+
+    * foo.el (a-function): Terse summary of per-function changes.
+
+For trivial changes, a message consisting of just the changelog entry
+(the `* foo.el ...` part) is fine.
+
+[bugnote]: https://github.com/capitaomorte/yasnippet#important-note-regarding-bug-reporting
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/ChangeLog
@@ -0,0 +1,693 @@
+2016-04-03  Noam Postavsky  <npostavs@users.sourceforge.net>
+
+	packages/yasnippet: subtree pull from external
+
+	packages/yasnippet/snippets is left untouched in GNU ELPA. The upstream
+	version uses a submodule pointing to a snippets repo which lives at
+	https://github.com/AndreaCrotti/yasnippet-snippets.git
+
+2016-03-07  João Távora  <joaotavora@gmail.com>
+
+	Update packages/yasnippet by subtree-merging from its github-based
+	upstream
+
+	packages/yasnippet/snippets is left untouched in GNU ELPA. The upstream
+	version uses a submodule pointing to a snippets repo which lives at
+	https://github.com/AndreaCrotti/yasnippet-snippets.git
+
+	Conflicts: packages/yasnippet/snippets
+
+2016-01-23  João Távora  <joaotavora@gmail.com>
+
+	Fix previous merge bundler in packages/yasnippet/doc dir
+
+2016-01-21  João Távora  <joaotavora@gmail.com>
+
+	Update packages/yasnippet by subtree-merging from its external upstream
+
+	Again, packages/yasnippet/snippets is left untouched in GNU ELPA. The 
+	upstream version uses a submodule pointing to a snippets repo which 
+	lives at https://github.com/AndreaCrotti/yasnippet-snippets.git
+
+	Conflicts: packages/yasnippet/snippets
+
+2015-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* packages/yasnippet/yasnippet-tests.el: Silence byte-compiler.
+
+	(yas-saving-variables, yas-with-snippet-dirs): Move macros before their
+	use.
+	(yas--barbaz, yas--foobarbaz): Declare.
+	(yas--phony-c-mode, yas--test-mode, yas--another-test-mode): Move out of 
+	deftest, so the byte-compiler understands they're defined.
+
+2015-03-28  João Távora  <joaotavora@gmail.com>
+
+	Update packages/yasnippet by merging from its external upstream subtree
+
+	The snippet collection and the "yasmate" tool, realized in the upstream
+	as git submodules, are removed in the merge result. The "old" snippet
+	collection is however still in place in packages/yasnippet/snippets.
+
+	Conflicts:
+	.gitignore
+	packages/yasnippet/doc/manual.mdown
+	packages/yasnippet/extras/bundles/html-tmbundle
+	packages/yasnippet/extras/bundles/rails-tmbundle
+	packages/yasnippet/extras/bundles/ruby-tmbundle
+	packages/yasnippet/extras/imported/html-mode/.yas-setup.el
+	packages/yasnippet/extras/imported/objc-mode/.yas-setup.el
+	packages/yasnippet/extras/imported/objc-mode/Support/alldefs.txt
+	packages/yasnippet/extras/imported/rails-mode/.yas-setup.el
+	packages/yasnippet/extras/imported/ruby-mode/.yas-setup.el
+	packages/yasnippet/extras/textmate_import.rb
+	packages/yasnippet/snippets/c++-mode/.yas-parents
+	packages/yasnippet/snippets/c++-mode/beginend
+	packages/yasnippet/snippets/c++-mode/class
+	packages/yasnippet/snippets/c++-mode/ns
+	packages/yasnippet/snippets/c++-mode/template
+	packages/yasnippet/snippets/c++-mode/using
+	packages/yasnippet/snippets/c-mode/.yas-parents
+	packages/yasnippet/snippets/c-mode/fopen
+	packages/yasnippet/snippets/c-mode/printf
+	packages/yasnippet/snippets/cc-mode/.yas-parents
+	packages/yasnippet/snippets/cc-mode/do
+	packages/yasnippet/snippets/cc-mode/for
+	packages/yasnippet/snippets/cc-mode/if
+	packages/yasnippet/snippets/cc-mode/inc
+	packages/yasnippet/snippets/cc-mode/inc.1
+	packages/yasnippet/snippets/cc-mode/main
+	packages/yasnippet/snippets/cc-mode/once
+	packages/yasnippet/snippets/cc-mode/struct
+	packages/yasnippet/snippets/cperl-mode/.yas-parents
+	packages/yasnippet/snippets/csharp-mode/.yas-parents
+	packages/yasnippet/snippets/csharp-mode/attrib
+	packages/yasnippet/snippets/csharp-mode/attrib.1
+	packages/yasnippet/snippets/csharp-mode/attrib.2
+	packages/yasnippet/snippets/csharp-mode/class
+	packages/yasnippet/snippets/csharp-mode/comment
+	packages/yasnippet/snippets/csharp-mode/comment.1
+	packages/yasnippet/snippets/csharp-mode/comment.2
+	packages/yasnippet/snippets/csharp-mode/comment.3
+	packages/yasnippet/snippets/csharp-mode/method
+	packages/yasnippet/snippets/csharp-mode/namespace
+	packages/yasnippet/snippets/csharp-mode/prop
+	packages/yasnippet/snippets/csharp-mode/region
+	packages/yasnippet/snippets/csharp-mode/using
+	packages/yasnippet/snippets/csharp-mode/using.1
+	packages/yasnippet/snippets/csharp-mode/using.2
+	packages/yasnippet/snippets/css-mode/.yas-parents
+	packages/yasnippet/snippets/css-mode/bg
+	packages/yasnippet/snippets/css-mode/bg.1
+	packages/yasnippet/snippets/css-mode/bor
+	packages/yasnippet/snippets/css-mode/cl
+	packages/yasnippet/snippets/css-mode/disp.block
+	packages/yasnippet/snippets/css-mode/disp.inline
+	packages/yasnippet/snippets/css-mode/disp.none
+	packages/yasnippet/snippets/css-mode/ff
+	packages/yasnippet/snippets/css-mode/fs
+	packages/yasnippet/snippets/css-mode/mar.bottom
+	packages/yasnippet/snippets/css-mode/mar.left
+	packages/yasnippet/snippets/css-mode/mar.mar
+	packages/yasnippet/snippets/css-mode/mar.margin
+	packages/yasnippet/snippets/css-mode/mar.right
+	packages/yasnippet/snippets/css-mode/mar.top
+	packages/yasnippet/snippets/css-mode/pad.bottom
+	packages/yasnippet/snippets/css-mode/pad.left
+	packages/yasnippet/snippets/css-mode/pad.pad
+	packages/yasnippet/snippets/css-mode/pad.padding
+	packages/yasnippet/snippets/css-mode/pad.right
+	packages/yasnippet/snippets/css-mode/pad.top
+	packages/yasnippet/snippets/emacs-lisp-mode/.read_me
+	packages/yasnippet/snippets/emacs-lisp-mode/.yas-parents
+	packages/yasnippet/snippets/emacs-lisp-mode/add-hook.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/and.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/append.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/apply.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/aref.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/aset.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/assq.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/autoload.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/backward-char.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/beginning-of-line.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/bounds-of-thing-at-point.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/buffer-file-name.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/buffer-modified-p.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/buffer-substring-no-properties.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/buffer-substring.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/car.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/cdr.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/concat.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/cond.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/condition-case.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/cons.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/consp.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/copy-directory.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/copy-file.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/current-buffer.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/custom-autoload.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/defalias.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/defcustom.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/define-key.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/defsubst.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/defun.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/defvar.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/delete-char.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/delete-directory.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/delete-file.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/delete-region.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/directory-files.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/dolist.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/end-of-line.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/eq.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/equal.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/error.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/expand-file-name.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/f.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/fboundp.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/file-name-directory.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/file-name-extension.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/file-name-nondirectory.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/file-name-sans-extension.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/file-relative-name.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/find-file.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/format.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/forward-char.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/forward-line.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/funcall.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/function.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/get.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/global-set-key.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/goto-char.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/if.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/insert-file-contents.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/insert.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/interactive.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/kbd.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/kill-buffer.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/lambda.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/length.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/let.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/line-beginning-position.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/line-end-position.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/list.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/looking-at.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/make-directory.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/make-local-variable.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/mapc.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/mapcar.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/match-beginning.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/match-end.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/match-string.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/memq.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/message.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/not.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/nth.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/null.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/number-to-string.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/or.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/point-max.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/point-min.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/point.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/princ.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/print.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/progn.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/push.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/put.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/re-search-backward.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/re-search-forward.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/region-active-p.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/region-beginning.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/region-end.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/rename-file.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/repeat.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/replace-regexp-in-string.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/replace-regexp.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/require.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/save-buffer.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/save-excursion.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/search-backward-regexp.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/search-backward.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/search-forward-regexp.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/search-forward.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/set-buffer.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/set-file-modes.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/set-mark.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/set.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/setq.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/skip-chars-backward.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/skip-chars-forward.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/split-string.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/string-match.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/string-to-number.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/string.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/string=.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/stringp.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/substring.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/thing-at-point.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/unless.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/vector.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/when.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/while.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/widget-get.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/with-current-buffer.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-file.process.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-find-replace.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-grabstring.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-grabthing.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-traverse_dir.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/x-word-or-region.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/y-or-n-p.yasnippet
+	packages/yasnippet/snippets/emacs-lisp-mode/yes-or-no-p.yasnippet
+	packages/yasnippet/snippets/erlang-mode/.yas-parents
+	packages/yasnippet/snippets/erlang-mode/after
+	packages/yasnippet/snippets/erlang-mode/begin
+	packages/yasnippet/snippets/erlang-mode/beh
+	packages/yasnippet/snippets/erlang-mode/case
+	packages/yasnippet/snippets/erlang-mode/compile
+	packages/yasnippet/snippets/erlang-mode/def
+	packages/yasnippet/snippets/erlang-mode/exp
+	packages/yasnippet/snippets/erlang-mode/fun
+	packages/yasnippet/snippets/erlang-mode/if
+	packages/yasnippet/snippets/erlang-mode/ifdef
+	packages/yasnippet/snippets/erlang-mode/ifndef
+	packages/yasnippet/snippets/erlang-mode/imp
+	packages/yasnippet/snippets/erlang-mode/inc
+	packages/yasnippet/snippets/erlang-mode/inc.lib
+	packages/yasnippet/snippets/erlang-mode/loop
+	packages/yasnippet/snippets/erlang-mode/mod
+	packages/yasnippet/snippets/erlang-mode/rcv
+	packages/yasnippet/snippets/erlang-mode/rcv.after
+	packages/yasnippet/snippets/erlang-mode/rec
+	packages/yasnippet/snippets/erlang-mode/try
+	packages/yasnippet/snippets/erlang-mode/undef
+	packages/yasnippet/snippets/f90-mode/.yas-parents
+	packages/yasnippet/snippets/f90-mode/au
+	packages/yasnippet/snippets/f90-mode/bd
+	packages/yasnippet/snippets/f90-mode/c
+	packages/yasnippet/snippets/f90-mode/ch
+	packages/yasnippet/snippets/f90-mode/cx
+	packages/yasnippet/snippets/f90-mode/dc
+	packages/yasnippet/snippets/f90-mode/do
+	packages/yasnippet/snippets/f90-mode/dp
+	packages/yasnippet/snippets/f90-mode/eq
+	packages/yasnippet/snippets/f90-mode/ib
+	packages/yasnippet/snippets/f90-mode/ic
+	packages/yasnippet/snippets/f90-mode/ich
+	packages/yasnippet/snippets/f90-mode/if
+	packages/yasnippet/snippets/f90-mode/ii
+	packages/yasnippet/snippets/f90-mode/il
+	packages/yasnippet/snippets/f90-mode/in
+	packages/yasnippet/snippets/f90-mode/inc
+	packages/yasnippet/snippets/f90-mode/intr
+	packages/yasnippet/snippets/f90-mode/ir
+	packages/yasnippet/snippets/f90-mode/l
+	packages/yasnippet/snippets/f90-mode/pa
+	packages/yasnippet/snippets/f90-mode/pr
+	packages/yasnippet/snippets/f90-mode/re
+	packages/yasnippet/snippets/f90-mode/st
+	packages/yasnippet/snippets/f90-mode/su
+	packages/yasnippet/snippets/f90-mode/wr
+	packages/yasnippet/snippets/html-mode/.yas-parents
+	packages/yasnippet/snippets/html-mode/b.yasnippet
+	packages/yasnippet/snippets/html-mode/body
+	packages/yasnippet/snippets/html-mode/br
+	packages/yasnippet/snippets/html-mode/code
+	packages/yasnippet/snippets/html-mode/code.class
+	packages/yasnippet/snippets/html-mode/div
+	packages/yasnippet/snippets/html-mode/div.class
+	packages/yasnippet/snippets/html-mode/div.id
+	packages/yasnippet/snippets/html-mode/div.id-class
+	packages/yasnippet/snippets/html-mode/dov
+	packages/yasnippet/snippets/html-mode/form
+	packages/yasnippet/snippets/html-mode/head
+	packages/yasnippet/snippets/html-mode/header/h1
+	packages/yasnippet/snippets/html-mode/header/h2
+	packages/yasnippet/snippets/html-mode/header/h3
+	packages/yasnippet/snippets/html-mode/header/h4
+	packages/yasnippet/snippets/html-mode/header/h5
+	packages/yasnippet/snippets/html-mode/header/h6
+	packages/yasnippet/snippets/html-mode/hr
+	packages/yasnippet/snippets/html-mode/href
+	packages/yasnippet/snippets/html-mode/html
+	packages/yasnippet/snippets/html-mode/html.xmlns
+	packages/yasnippet/snippets/html-mode/i.yasnippet
+	packages/yasnippet/snippets/html-mode/img
+	packages/yasnippet/snippets/html-mode/input
+	packages/yasnippet/snippets/html-mode/link.stylesheet
+	packages/yasnippet/snippets/html-mode/link.stylesheet-ie
+	packages/yasnippet/snippets/html-mode/list/dd
+	packages/yasnippet/snippets/html-mode/list/dl
+	packages/yasnippet/snippets/html-mode/list/dl.id
+	packages/yasnippet/snippets/html-mode/list/dt
+	packages/yasnippet/snippets/html-mode/list/li
+	packages/yasnippet/snippets/html-mode/list/li.class
+	packages/yasnippet/snippets/html-mode/list/ol
+	packages/yasnippet/snippets/html-mode/list/ol.class
+	packages/yasnippet/snippets/html-mode/list/ol.id
+	packages/yasnippet/snippets/html-mode/list/ul
+	packages/yasnippet/snippets/html-mode/list/ul.class
+	packages/yasnippet/snippets/html-mode/list/ul.id
+	packages/yasnippet/snippets/html-mode/mailto
+	packages/yasnippet/snippets/html-mode/meta/doctype
+	packages/yasnippet/snippets/html-mode/meta/doctype.xhml1
+	packages/yasnippet/snippets/html-mode/meta/doctype.xhtml1_1
+	packages/yasnippet/snippets/html-mode/meta/doctype.xhtml1_strict
+	packages/yasnippet/snippets/html-mode/meta/doctype.xhtml1_transitional
+	packages/yasnippet/snippets/html-mode/meta/meta
+	packages/yasnippet/snippets/html-mode/meta/meta.http-equiv
+	packages/yasnippet/snippets/html-mode/p
+	packages/yasnippet/snippets/html-mode/pre
+	packages/yasnippet/snippets/html-mode/q.yasnippet
+	packages/yasnippet/snippets/html-mode/quote
+	packages/yasnippet/snippets/html-mode/script.javascript
+	packages/yasnippet/snippets/html-mode/script.javascript-src
+	packages/yasnippet/snippets/html-mode/span
+	packages/yasnippet/snippets/html-mode/span.class
+	packages/yasnippet/snippets/html-mode/span.id
+	packages/yasnippet/snippets/html-mode/style
+	packages/yasnippet/snippets/html-mode/table/table
+	packages/yasnippet/snippets/html-mode/table/td
+	packages/yasnippet/snippets/html-mode/table/th
+	packages/yasnippet/snippets/html-mode/table/tr
+	packages/yasnippet/snippets/html-mode/textarea
+	packages/yasnippet/snippets/html-mode/title
+	packages/yasnippet/snippets/js-mode/assert.yasnippet
+	packages/yasnippet/snippets/js-mode/cb.yasnippet
+	packages/yasnippet/snippets/js-mode/com.yasnippet
+	packages/yasnippet/snippets/js-mode/describe.yasnippet
+	packages/yasnippet/snippets/js-mode/err.snippet
+	packages/yasnippet/snippets/js-mode/error.snippet
+	packages/yasnippet/snippets/js-mode/expect.yasnippet
+	packages/yasnippet/snippets/js-mode/exports.yasnippet
+	packages/yasnippet/snippets/js-mode/fn.yasnippet
+	packages/yasnippet/snippets/js-mode/for.yasnippet
+	packages/yasnippet/snippets/js-mode/id.yasnippet
+	packages/yasnippet/snippets/js-mode/if.yasnippet
+	packages/yasnippet/snippets/js-mode/invoc.yasnippet
+	packages/yasnippet/snippets/js-mode/it.yasnippet
+	packages/yasnippet/snippets/js-mode/log.yasnippet
+	packages/yasnippet/snippets/js-mode/method.yasnippet
+	packages/yasnippet/snippets/js-mode/mod.yasnippet
+	packages/yasnippet/snippets/js-mode/prop.yasnippet
+	packages/yasnippet/snippets/js-mode/proto.yasnippet
+	packages/yasnippet/snippets/js-mode/rq.yasnippet
+	packages/yasnippet/snippets/js-mode/rt.yasnippet
+	packages/yasnippet/snippets/js-mode/slice.yasnippet
+	packages/yasnippet/snippets/js-mode/super.yasnippet
+	packages/yasnippet/snippets/js-mode/switch.yasnippet
+	packages/yasnippet/snippets/js-mode/throw.yasnippet
+	packages/yasnippet/snippets/js-mode/try.yasnippet
+	packages/yasnippet/snippets/js-mode/var.yasnippet
+	packages/yasnippet/snippets/js-mode/wh.yasnippet
+	packages/yasnippet/snippets/js-mode/while.yasnippet
+	packages/yasnippet/snippets/latex-mode/.yas-parents
+	packages/yasnippet/snippets/latex-mode/begin
+	packages/yasnippet/snippets/markdown-mode/+
+	packages/yasnippet/snippets/markdown-mode/-
+	packages/yasnippet/snippets/markdown-mode/.yas-parents
+	packages/yasnippet/snippets/markdown-mode/_
+	packages/yasnippet/snippets/markdown-mode/__
+	packages/yasnippet/snippets/markdown-mode/`
+	packages/yasnippet/snippets/markdown-mode/h1.1
+	packages/yasnippet/snippets/markdown-mode/h1.2
+	packages/yasnippet/snippets/markdown-mode/h2.1
+	packages/yasnippet/snippets/markdown-mode/h2.2
+	packages/yasnippet/snippets/markdown-mode/h3
+	packages/yasnippet/snippets/markdown-mode/h4
+	packages/yasnippet/snippets/markdown-mode/h5
+	packages/yasnippet/snippets/markdown-mode/h6
+	packages/yasnippet/snippets/markdown-mode/hr.1
+	packages/yasnippet/snippets/markdown-mode/hr.2
+	packages/yasnippet/snippets/markdown-mode/img
+	packages/yasnippet/snippets/markdown-mode/link
+	packages/yasnippet/snippets/markdown-mode/ol
+	packages/yasnippet/snippets/markdown-mode/rimg
+	packages/yasnippet/snippets/markdown-mode/rlb
+	packages/yasnippet/snippets/markdown-mode/rlink
+	packages/yasnippet/snippets/nxml-mode/.yas-parents
+	packages/yasnippet/snippets/nxml-mode/body
+	packages/yasnippet/snippets/nxml-mode/br
+	packages/yasnippet/snippets/nxml-mode/code
+	packages/yasnippet/snippets/nxml-mode/div
+	packages/yasnippet/snippets/nxml-mode/form
+	packages/yasnippet/snippets/nxml-mode/head
+	packages/yasnippet/snippets/nxml-mode/header/h1
+	packages/yasnippet/snippets/nxml-mode/header/h2
+	packages/yasnippet/snippets/nxml-mode/header/h3
+	packages/yasnippet/snippets/nxml-mode/header/h4
+	packages/yasnippet/snippets/nxml-mode/header/h5
+	packages/yasnippet/snippets/nxml-mode/header/h6
+	packages/yasnippet/snippets/nxml-mode/hr
+	packages/yasnippet/snippets/nxml-mode/href
+	packages/yasnippet/snippets/nxml-mode/html
+	packages/yasnippet/snippets/nxml-mode/img
+	packages/yasnippet/snippets/nxml-mode/input
+	packages/yasnippet/snippets/nxml-mode/li
+	packages/yasnippet/snippets/nxml-mode/link
+	packages/yasnippet/snippets/nxml-mode/meta/doctype
+	packages/yasnippet/snippets/nxml-mode/meta/doctype.xhtml1_strict
+	packages/yasnippet/snippets/nxml-mode/meta/doctype.xhtml1_transitional
+	packages/yasnippet/snippets/nxml-mode/meta/meta
+	packages/yasnippet/snippets/nxml-mode/name
+	packages/yasnippet/snippets/nxml-mode/ol
+	packages/yasnippet/snippets/nxml-mode/p
+	packages/yasnippet/snippets/nxml-mode/pre
+	packages/yasnippet/snippets/nxml-mode/quote
+	packages/yasnippet/snippets/nxml-mode/span
+	packages/yasnippet/snippets/nxml-mode/style
+	packages/yasnippet/snippets/nxml-mode/table
+	packages/yasnippet/snippets/nxml-mode/tag.1l
+	packages/yasnippet/snippets/nxml-mode/tag.2l
+	packages/yasnippet/snippets/nxml-mode/td
+	packages/yasnippet/snippets/nxml-mode/th
+	packages/yasnippet/snippets/nxml-mode/title
+	packages/yasnippet/snippets/nxml-mode/tr
+	packages/yasnippet/snippets/nxml-mode/ul
+	packages/yasnippet/snippets/objc-mode/.yas-parents
+	packages/yasnippet/snippets/objc-mode/prop
+	packages/yasnippet/snippets/perl-mode/.yas-parents
+	packages/yasnippet/snippets/perl-mode/eval
+	packages/yasnippet/snippets/perl-mode/for
+	packages/yasnippet/snippets/perl-mode/fore
+	packages/yasnippet/snippets/perl-mode/if
+	packages/yasnippet/snippets/perl-mode/ife
+	packages/yasnippet/snippets/perl-mode/ifee
+	packages/yasnippet/snippets/perl-mode/sub
+	packages/yasnippet/snippets/perl-mode/unless
+	packages/yasnippet/snippets/perl-mode/while
+	packages/yasnippet/snippets/perl-mode/xfore
+	packages/yasnippet/snippets/perl-mode/xif
+	packages/yasnippet/snippets/perl-mode/xunless
+	packages/yasnippet/snippets/perl-mode/xwhile
+	packages/yasnippet/snippets/python-mode/.yas-parents
+	packages/yasnippet/snippets/python-mode/__
+	packages/yasnippet/snippets/python-mode/class
+	packages/yasnippet/snippets/python-mode/def
+	packages/yasnippet/snippets/python-mode/defm
+	packages/yasnippet/snippets/python-mode/for
+	packages/yasnippet/snippets/python-mode/ifmain
+	packages/yasnippet/snippets/python-mode/prop
+	packages/yasnippet/snippets/python-mode/propg
+	packages/yasnippet/snippets/python-mode/propsg
+	packages/yasnippet/snippets/python-mode/while
+	packages/yasnippet/snippets/rst-mode/.yas-parents
+	packages/yasnippet/snippets/rst-mode/chap
+	packages/yasnippet/snippets/rst-mode/sec
+	packages/yasnippet/snippets/rst-mode/tit
+	packages/yasnippet/snippets/ruby-mode/.yas-parents
+	packages/yasnippet/snippets/ruby-mode/collections/all
+	packages/yasnippet/snippets/ruby-mode/collections/any
+	packages/yasnippet/snippets/ruby-mode/collections/classify
+	packages/yasnippet/snippets/ruby-mode/collections/collect
+	packages/yasnippet/snippets/ruby-mode/collections/deli
+	packages/yasnippet/snippets/ruby-mode/collections/det
+	packages/yasnippet/snippets/ruby-mode/collections/ea
+	packages/yasnippet/snippets/ruby-mode/collections/eac
+	packages/yasnippet/snippets/ruby-mode/collections/eai
+	packages/yasnippet/snippets/ruby-mode/collections/eav
+	packages/yasnippet/snippets/ruby-mode/collections/eawi
+	packages/yasnippet/snippets/ruby-mode/collections/inject
+	packages/yasnippet/snippets/ruby-mode/collections/reject
+	packages/yasnippet/snippets/ruby-mode/collections/select
+	packages/yasnippet/snippets/ruby-mode/collections/zip
+	packages/yasnippet/snippets/ruby-mode/control structure/forin
+	packages/yasnippet/snippets/ruby-mode/control structure/if
+	packages/yasnippet/snippets/ruby-mode/control structure/ife
+	packages/yasnippet/snippets/ruby-mode/control structure/tim
+	packages/yasnippet/snippets/ruby-mode/control structure/until
+	packages/yasnippet/snippets/ruby-mode/control structure/upt
+	packages/yasnippet/snippets/ruby-mode/control structure/when
+	packages/yasnippet/snippets/ruby-mode/control structure/while
+	packages/yasnippet/snippets/ruby-mode/definitions/Comp
+	packages/yasnippet/snippets/ruby-mode/definitions/am
+	packages/yasnippet/snippets/ruby-mode/definitions/cla
+	packages/yasnippet/snippets/ruby-mode/definitions/cls
+	packages/yasnippet/snippets/ruby-mode/definitions/mm
+	packages/yasnippet/snippets/ruby-mode/definitions/mod
+	packages/yasnippet/snippets/ruby-mode/definitions/r
+	packages/yasnippet/snippets/ruby-mode/definitions/rw
+	packages/yasnippet/snippets/ruby-mode/definitions/w
+	packages/yasnippet/snippets/ruby-mode/general/#
+	packages/yasnippet/snippets/ruby-mode/general/=b
+	packages/yasnippet/snippets/ruby-mode/general/app
+	packages/yasnippet/snippets/ruby-mode/general/bm
+	packages/yasnippet/snippets/ruby-mode/general/case
+	packages/yasnippet/snippets/ruby-mode/general/dee
+	packages/yasnippet/snippets/ruby-mode/general/rb
+	packages/yasnippet/snippets/ruby-mode/general/req
+	packages/yasnippet/snippets/ruby-mode/general/rreq
+	packages/yasnippet/snippets/ruby-mode/general/y
+	packages/yasnippet/snippets/scala-mode/.yas-parents
+	packages/yasnippet/snippets/scala-mode/act
+	packages/yasnippet/snippets/scala-mode/act.arg
+	packages/yasnippet/snippets/scala-mode/actor
+	packages/yasnippet/snippets/scala-mode/ano
+	packages/yasnippet/snippets/scala-mode/app
+	packages/yasnippet/snippets/scala-mode/arr.new
+	packages/yasnippet/snippets/scala-mode/arr.val-new
+	packages/yasnippet/snippets/scala-mode/asof
+	packages/yasnippet/snippets/scala-mode/ass
+	packages/yasnippet/snippets/scala-mode/ass.true
+	packages/yasnippet/snippets/scala-mode/at.author
+	packages/yasnippet/snippets/scala-mode/at.param
+	packages/yasnippet/snippets/scala-mode/at.return
+	packages/yasnippet/snippets/scala-mode/at.version
+	packages/yasnippet/snippets/scala-mode/bang
+	packages/yasnippet/snippets/scala-mode/case
+	packages/yasnippet/snippets/scala-mode/case.match-all
+	packages/yasnippet/snippets/scala-mode/cast
+	packages/yasnippet/snippets/scala-mode/cc
+	packages/yasnippet/snippets/scala-mode/cl
+	packages/yasnippet/snippets/scala-mode/cl.abs
+	packages/yasnippet/snippets/scala-mode/cl.abs-arg
+	packages/yasnippet/snippets/scala-mode/cl.arg
+	packages/yasnippet/snippets/scala-mode/clof
+	packages/yasnippet/snippets/scala-mode/co
+	packages/yasnippet/snippets/scala-mode/cons
+	packages/yasnippet/snippets/scala-mode/cons.nil
+	packages/yasnippet/snippets/scala-mode/def.arg
+	packages/yasnippet/snippets/scala-mode/def.arg-body
+	packages/yasnippet/snippets/scala-mode/def.arg-ret
+	packages/yasnippet/snippets/scala-mode/def.arg-ret-body
+	packages/yasnippet/snippets/scala-mode/def.body
+	packages/yasnippet/snippets/scala-mode/def.ret
+	packages/yasnippet/snippets/scala-mode/def.ret-body
+	packages/yasnippet/snippets/scala-mode/def.simple
+	packages/yasnippet/snippets/scala-mode/doc.class
+	packages/yasnippet/snippets/scala-mode/doc.def
+	packages/yasnippet/snippets/scala-mode/doc.file
+	packages/yasnippet/snippets/scala-mode/doc.file-scala
+	packages/yasnippet/snippets/scala-mode/doc.file-scala-api
+	packages/yasnippet/snippets/scala-mode/doc.scaladoc
+	packages/yasnippet/snippets/scala-mode/expect
+	packages/yasnippet/snippets/scala-mode/ext
+	packages/yasnippet/snippets/scala-mode/for.extract
+	packages/yasnippet/snippets/scala-mode/for.if
+	packages/yasnippet/snippets/scala-mode/for.loop
+	packages/yasnippet/snippets/scala-mode/for.multi
+	packages/yasnippet/snippets/scala-mode/foreach
+	packages/yasnippet/snippets/scala-mode/hmap.new
+	packages/yasnippet/snippets/scala-mode/hmap.val-new
+	packages/yasnippet/snippets/scala-mode/hset.new
+	packages/yasnippet/snippets/scala-mode/hset.val-new
+	packages/yasnippet/snippets/scala-mode/if
+	packages/yasnippet/snippets/scala-mode/if.else
+	packages/yasnippet/snippets/scala-mode/imp
+	packages/yasnippet/snippets/scala-mode/intercept
+	packages/yasnippet/snippets/scala-mode/isof
+	packages/yasnippet/snippets/scala-mode/ls.new
+	packages/yasnippet/snippets/scala-mode/ls.val-new
+	packages/yasnippet/snippets/scala-mode/main
+	packages/yasnippet/snippets/scala-mode/map
+	packages/yasnippet/snippets/scala-mode/map.new
+	packages/yasnippet/snippets/scala-mode/match
+	packages/yasnippet/snippets/scala-mode/match.can
+	packages/yasnippet/snippets/scala-mode/match.option
+	packages/yasnippet/snippets/scala-mode/mix
+	packages/yasnippet/snippets/scala-mode/ob
+	packages/yasnippet/snippets/scala-mode/pac
+	packages/yasnippet/snippets/scala-mode/pr.newline
+	packages/yasnippet/snippets/scala-mode/pr.simple
+	packages/yasnippet/snippets/scala-mode/pr.string
+	packages/yasnippet/snippets/scala-mode/pr.trace
+	packages/yasnippet/snippets/scala-mode/pri
+	packages/yasnippet/snippets/scala-mode/pri.param
+	packages/yasnippet/snippets/scala-mode/pro
+	packages/yasnippet/snippets/scala-mode/pro.param
+	packages/yasnippet/snippets/scala-mode/suite
+	packages/yasnippet/snippets/scala-mode/test
+	packages/yasnippet/snippets/scala-mode/throw
+	packages/yasnippet/snippets/scala-mode/tr
+	packages/yasnippet/snippets/scala-mode/tr.ext
+	packages/yasnippet/snippets/scala-mode/tr.ext-with
+	packages/yasnippet/snippets/scala-mode/tr.with
+	packages/yasnippet/snippets/scala-mode/try
+	packages/yasnippet/snippets/scala-mode/try.catch-finally
+	packages/yasnippet/snippets/scala-mode/try.finally
+	packages/yasnippet/snippets/scala-mode/tup.arrow
+	packages/yasnippet/snippets/scala-mode/tup.paren
+	packages/yasnippet/snippets/scala-mode/val
+	packages/yasnippet/snippets/scala-mode/val.new
+	packages/yasnippet/snippets/scala-mode/val.ret
+	packages/yasnippet/snippets/scala-mode/var
+	packages/yasnippet/snippets/scala-mode/var.new
+	packages/yasnippet/snippets/scala-mode/var.ret
+	packages/yasnippet/snippets/scala-mode/whi
+	packages/yasnippet/snippets/scala-mode/with
+	packages/yasnippet/snippets/snippet-mode/.yas-parents
+	packages/yasnippet/snippets/snippet-mode/field
+	packages/yasnippet/snippets/snippet-mode/mirror
+	packages/yasnippet/snippets/snippet-mode/vars
+	packages/yasnippet/snippets/sql-mode/.yas-parents
+	packages/yasnippet/snippets/sql-mode/column
+	packages/yasnippet/snippets/sql-mode/constraint
+	packages/yasnippet/snippets/sql-mode/constraint.1
+	packages/yasnippet/snippets/sql-mode/create
+	packages/yasnippet/snippets/sql-mode/create.1
+	packages/yasnippet/snippets/sql-mode/references
+	packages/yasnippet/snippets/text-mode/email
+	packages/yasnippet/snippets/text-mode/time
+	packages/yasnippet/yasnippet-tests.el
+
+2014-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* packages/yasnippet: Fix lexical-binding cookie; and require cl.
+
+	* packages/yasnippet/yasnippet-tests.el: Fix lexical-binding cookie.
+	* packages/yasnippet/yasnippet-debug.el: Require cl.
+
+2013-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Sync with yasnippet/master
+
+2013-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* packages/yasnippet: Fix up copyright headers.
+
+2013-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Sync with yasnippet/master
+
+2013-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Add YAsnippet metadata.
+
+2013-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Only keep the strictly necessary *-pkg.el files
+
+2012-09-24  Chong Yidong  <cyd@gnu.org>
+
+	Add missing file yasnippet-pkg.el
+
+2012-09-24  Chong Yidong  <cyd@gnu.org>
+
+	Add README file for yasnippet.
+
+2012-09-24  João Távora  <joaotavora@gmail.com>
+
+	Add yasnippet.
+
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/NEWS
@@ -0,0 +1,216 @@
+Yasnippet NEWS -- history of user-visible changes.
+
+Copyright (C) 2016 Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+
+* 0.9.1 (est. March 2016)
+
+** Changes and New Features
+
+*** Noam Postavsky is now the official yasnippet maintainer.
+
+*** `yas-visit-snippet-file' now works for compiled snippets (see Github #597).
+
+*** New function `yas-lookup-snippet' (see Github #595, #596).
+
+*** .emacs.d/snippets directory is now created automatically.
+If that value is present in `yas-snippet-dirs' (see Github #648).
+
+*** Default value for `yas-snippet-dirs' now uses `user-emacs-directory'
+instead of hardcoding "~/emacs.d" (see Github #632).
+
+*** `yas-visit-snippet-file' no longer overrides `yas-prompt-functions',
+see Github #576.
+
+*** The defaults for prompting have changed.
+`yas-x-prompt' is no longer present in the default value of
+`yas-prompt-functions'.
+
+The new function `yas-maybe-ido-prompt' (which performs ido prompting
+if `ido-mode' is enabled) replaces `yas-ido-prompt' (which always
+performs ido prompting).  Previously the behaviour was dependent on
+the Emacs version being used.
+
+*** The default value of `yas-buffer-local-condition' now works for `yas-insert-snippet' too.
+See Github #305.
+
+*** The default value of `yas-new-snippet-default' no longer inserts `require-final-newline: nil'.
+It was redundant, since `mode: snippet' already accomplishes the same.
+`binding: ${4:direct-keybinding}}' is also removed, as it is hardly
+ever wanted.
+
+*** Snippet fields are only cleared by commands with `delete-selection' property,
+See Github #515, #644.
+
+*** `yas-initialize' (and backward compat alias `yas/initialize') are restored,
+but marked obsolete, use (yas-global-mode +1) instead.  See Github
+#546, #569.
+
+*** `yas-key-syntaxes' is much more powerful and accepts functions.
+Enables use cases when discovering keys based on buffer syntax is not
+good enough.  See issue #497.
+
+*** Documentation rewritten in org-mode and updated.
+A tremendous effort by Noam Postavsky.  Hopefully easier to maintain
+and navigate.  Available at <http://capitaomorte.github.io/yasnippet>.
+
+*** Snippets are now maintained in their own repo.
+Snippets live in Andrea Crotti's
+<https://github.com/andreacrotti/yasnippet-snippets>.  See README.md
+for more details.
+
+*** Textmate snippet importer moved to separate `yasmate' repo.
+URL is <https://github.com/capitaomorte/yasmate>.  See README.md for
+more details.
+
+*** `yas-snippet-dirs' now allows symbols as aliases to directories.
+The added level of indirection should allow more esoteric
+configurations (see Github #495).
+
+*** `yas-reload-all' can now jit-load when called interactively.
+
+*** New `yas-after-reload-hook' run after `yas-reload-all'.
+See <https://github.com/pezra/rspec-mode/pull/75> for the discussion
+leading up to this change.
+
+*** New functions `yas-activate-extra-mode' and `yas-deactivate-extra-mode'.
+These are preferable to setting `yas-extra-modes' directly in the mode
+hook (see issue #420 for more information).
+
+*** New variable `yas-new-snippet-default'.
+The default snippet suggested on `yas-new-snippet' can now be
+customized.
+
+** Fixed bugs
+
+*** `yas-expand' now sets `this-command' when falling back to another command.
+Previously it was setting `this-original-command', which does not
+match the documented semantics.  See Github #587.
+
+*** Github #537: Be lenient to extensions operating on snippet fields.
+
+*** Github #619: Parents of extra modes are now activated too.
+
+*** Github #549: `yas-verbosity' is now applied to `load' calls too.
+
+*** Github #607; avoid obscure Emacs bug triggered by overlays in *Messages* buffer.
+It was triggered by yasnippet+flycheck+highlight-parentheses.  See
+also <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21824>
+
+*** Github #617; fix x prompt when snippet inserts many lines.
+
+*** Github #618; avoid breakage if `scan-sexp' modifies match data.
+Which it does in Emacs 25.
+
+*** Github #562: Deleting inner numberless snippet caused an error.
+
+*** Github #418, #536: Fix navigation to zero-length fields at snippet end.
+
+*** Github #527, #525 and #526: Attempt to prevent "fallback loops"
+when interactiing with other extensions that use similar fallback
+mechanisms.
+
+
+* 0.8.0 (August 2012)
+
+** Changes and New Features
+
+*** All YASnippet symbols now prefixed with `yas-'.  Keep old `yas/' versions as aliases.
+
+*** Yasnippet is now Free Software Foundation's copyright.
+
+*** `yas-dont-activate' can be a list of functions.
+
+*** Snippets are loaded just-in-time .
+Thanks to Matthew Fidler for a lot of input with the implementation.
+
+*** yasnippet-bundle.el is no longer available.
+Use `yas-compile-directory' instead if you need the speed advantage.
+
+*** New functions `yas-compile-directory' and `yas-recompile-all'.
+This feature is still undocumented.  Generate a
+.yas-compiled-snippets.el file in the directory passed where snippets
+are compiled into emacs-lisp code.
+
+*** New `yas-verbosity' variable.
+
+*** Interactively calling `yas-exit-snippet' exits most recently inserted snippet.
+
+*** Using filenames as snippet triggers is deprecated.
+
+*** Default value of `yas-show-menu-p' is `abbreviate'.
+
+*** `yas-visit-snippet' ignores `yas-prompt-functions'.
+
+*** `yas-buffer-local-condition' restricted to trigger-key expansions by default.
+
+*** `yas-load-snippet-buffer' (`C-c C-c') in `snippet-mode' has been much improved.
+
+*** New variable `yas-expand-only-for-last-commands', thanks Erik Postma.
+
+*** New variable `yas-extra-modes' aliases old `yas/mode-symbol'.
+
+*** New `yas-describe-tables' command.
+
+*** New `yas-define-condition-cache' macro.
+This defines an optimised function for placing in a `# condition:'
+directive that will run at most once per snippet-expansion attempt.
+
+*** Mirrors can occur inside fields.
+
+*** New `# type: command' directive.
+This feature is still largely undocumented.
+
+*** A hidden .yas-setup.el is loaded if found in a snippet directory.
+
+*** `yas-wrap-around-region' can now also be `cua' (undocumented feature).
+
+*** Make menu groups automatically using new .yas-make-groups file.
+
+*** Per-snippet keybindings using `# keybinding:' directive.
+
+*** More friendly `yas-expand-snippet' calling convention.
+This breaks backward compatibility.
+
+*** The `# env:' directive is now `# expand-env:'.
+
+*** Setup multiple parent modes using new .yas-parents file.
+
+** Fixed bugs
+
+*** Github #281: jit-load snippets in the correct order.
+
+*** Github #245: primary field transformations work inside nested fields.
+
+*** Github #242: stop using the deprecated `assoc' library.
+
+*** Github #233: show direct snippet keybindings in the menu.
+
+*** Github #194, Googlecode 192: Compatibility with `fci-mode'.
+
+*** Github #147, Googlecode 145: Snippets comments were getting inserted.
+
+*** Github #141, Googlecode 139: searching buffer in embedded elisp works slightly better.
+Issue is still open for analysis, though
+
+*** Github #95, Googlecode 193: no more stack overflow in org-mode.
+
+
+----------------------------------------------------------------------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+
+Local variables:
+coding: utf-8
+mode: outline
+paragraph-separate: "[ 	]*$"
+end:
rename from elpa/yasnippet-0.8.0/README
rename to elpa/yasnippet-0.9.1/README
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/README.mdown
@@ -0,0 +1,171 @@
+[![Build Status](https://travis-ci.org/capitaomorte/yasnippet.png)](https://travis-ci.org/capitaomorte/yasnippet)
+
+# Intro
+
+**YASnippet** is a template system for Emacs. It allows you to
+type an abbreviation and automatically expand it into function
+templates. Bundled language templates include: C, C++, C#, Perl,
+Python, Ruby, SQL, LaTeX, HTML, CSS and more. The snippet syntax
+is inspired from [TextMate's][textmate-snippets] syntax, you can
+even [import](#import) most TextMate templates to
+YASnippet. Watch [a demo on YouTube][youtube-demo].
+
+[textmate-snippets]: http://manual.macromates.com/en/snippets
+[youtube-demo]: http://www.youtube.com/watch?v=ZCGmZK4V7Sg
+
+# Installation
+
+## Install the most recent version
+
+Clone this repository somewhere
+
+    $ cd ~/.emacs.d/plugins
+    $ git clone --recursive https://github.com/capitaomorte/yasnippet
+
+Add the following in your `.emacs` file:
+
+    (add-to-list 'load-path
+                  "~/.emacs.d/plugins/yasnippet")
+    (require 'yasnippet)
+    (yas-global-mode 1)
+
+Add your own snippets to `~/.emacs.d/snippets` by placing files there or invoking `yas-new-snippet`.
+
+## Install with `package-install`
+
+In a recent emacs `M-x list-packages` is the recommended way to list and install packages.
+[MELPA][melpa] keeps a very recent snapshot of YASnippet, see http://melpa.org/#installing.
+
+## Install with el-get
+
+El-get is a nice way to get the most recent version, too. See
+https://github.com/dimitri/el-get for instructions.
+
+## Use `yas-minor-mode` on a per-buffer basis
+
+To use YASnippet as a non-global minor mode, don't call
+`yas-global-mode`; instead call `yas-reload-all` to load the snippet
+tables and then call `yas-minor-mode` from the hooks of major-modes
+where you want YASnippet enabled.
+
+    (yas-reload-all)
+    (add-hook 'prog-mode-hook #'yas-minor-mode)
+
+# Where are the snippets?
+
+<a name="import"></a>
+
+Yasnippet no longer bundles snippets directly, but it's very easy to
+get some!
+
+If you git-cloned yasnippet with the `--recursive` option you'll also
+download "git submodules" and find two subdirs under the main tree.
+
+1. `snippets/`
+
+    Points to [yasnippet-snippets] the snippet collection of
+    [AndreaCrotti](https://github.com/AndreaCrotti).
+
+    The default configuraiton already points to this dir, so to use
+    them, just make sure the submodule really was downloaded
+    (i.e. there are some files under `snippets/`)
+
+2. `yasmate/`
+
+    Points to a github repo of the [yasmate] tool, which is dedicated
+    to converting textmate bundles into yasnippet snippets.
+
+    To use these snippets you have to run the tool first, so
+    [see its doc][yasmate]), and then point the `yas-snippet-dirs`
+    variable to the `.../yasmate/snippets` subdir.
+
+    If you have a working ruby environment, you can probably get lucky
+    directly with `rake convert-bundles`.
+
+3.  [textmate-to-yas.el]
+
+    This is another textmate bundle converting tool using Elisp
+    instead of Ruby.
+
+Naturally, you can point `yas-snippet-dirs` to good snippet collections out
+there. If you have created snippets for a mode, or multiple modes,
+consider creating a repository to host them, then tell users that it
+should be added like this to `yas-snippet-dirs`:
+
+    (setq yas-snippet-dirs
+          '("~/.emacs.d/snippets"                 ;; personal snippets
+            "/path/to/some/collection/"           ;; foo-mode and bar-mode snippet collection
+            "/path/to/yasnippet/yasmate/snippets" ;; the yasmate collection
+            "/path/to/yasnippet/snippets"         ;; the default collection
+            ))
+
+    (yas-global-mode 1) ;; or M-x yas-reload-all if you've started YASnippet already.
+
+# Manual, issues etc
+
+Please refer to the comprehensive [documentation][docs] for full
+customisation and support.  If you find a bug in the code or in the
+documentation, please report it on [the GitHub issue tracker][issues].
+
+## Important note regarding bug reporting
+
+Your bug reports are very valuable.
+
+The most important thing when reporting bugs is making sure that we have
+a way to reproduce the problem exactly like it happened to you.
+
+To do this, we need to rule out interference from external factors
+like other Emacs extensions or your own customisations.
+
+Here's an example report that "sandboxes" an Emacs session just for 
+reproducing a bug.
+
+```
+$ emacs --version
+Emacs 24.3
+$ cd /tmp/
+$ git clone https://github.com/capitaomorte/yasnippet.git yasnippet-bug
+$ cd yasnippet-bug
+$ git log -1 --oneline
+6053db0 Closes #527: Unbreak case where yas-fallback-behaviour is a list
+$ HOME=$PWD emacs -L . # This "sandboxes" your emacs, melpa configuration, etc
+
+(require 'yasnippet)
+(yas-global-mode 1)
+
+When I open a foo-mode file I don't see foo-mode under the "YASnippet" menu!
+OR
+When loading yasnippet I see "Error: failed to frobnicate"!
+```
+
+Using `emacs -Q` or temporarily moving your `.emacs` init file to the side 
+is another way to achieve good reproducibility.
+
+Here's a
+[another example](https://github.com/capitaomorte/yasnippet/issues/318)
+of a bug report. It has everything needed for a successful analysis
+and speedy resolution.
+
+Also, don't forget to state the Emacs version (use `M-x emacs-version`) and
+the yasnippet version you are using (if using the latest from github,
+do `git log -1` in the dir).
+
+Any more info is welcome, but don't just paste a backtrace or an error
+message string you got, unless we ask for it.
+
+There is also a [YASnippet google group][forum]. I will keep the group
+open for reference and for discussion among users. Unfortunately I
+can't guarantee a timely response, so maybe it's better to create a
+github issue clearly marking your intent (user support/bug/feature
+request).
+
+Finally, thank you very much for using YASnippet!
+
+[docs]: http://capitaomorte.github.com/yasnippet/
+[issues]: https://github.com/capitaomorte/yasnippet/issues
+[googlecode tracker]: http://code.google.com/p/yasnippet/issues/list
+[forum]: http://groups.google.com/group/smart-snippet
+[melpa]: http://melpa.milkbox.net/
+[yasmate]: http://github.com/capitaomorte/yasmate
+[textmate-to-yas.el]: https://github.com/mattfidler/textmate-to-yas.el
+[yasnippet-snippets]: http://github.com/AndreaCrotti/yasnippet-snippets
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/Rakefile
@@ -0,0 +1,107 @@
+# -*- Ruby -*-
+
+require 'fileutils'
+
+$EMACS = ENV["EMACS"]
+if not $EMACS or $EMACS == 't'
+  $EMACS = "emacs"
+end
+
+def find_version
+  File.read("yasnippet.el", :encoding => "UTF-8") =~ /;; Package-version: *([0-9.]+?) *$/
+  $version = $1
+end
+find_version
+FileUtils.mkdir_p('pkg')
+
+desc "run tests in batch mode"
+task :tests do
+  sh "#{$EMACS} -Q -L . -l yasnippet-tests.el" +
+    " --batch -f ert-run-tests-batch-and-exit"
+end
+
+desc "create a release package"
+task :package do
+  release_dir = "pkg/yasnippet-#{$version}"
+  FileUtils.mkdir_p(release_dir)
+  files = ['snippets', 'yasnippet.el']
+  FileUtils.cp_r files, release_dir
+  File.open(File.join(release_dir,'yasnippet-pkg.el'), 'w') do |file|
+    file.puts <<END
+(define-package "yasnippet"
+                "#{$version}"
+                "A template system for Emacs")
+END
+  end
+  sh "git clean -f snippets"
+  FileUtils.cd 'pkg' do
+    sh "tar cf yasnippet-#{$version}.tar yasnippet-#{$version}"
+  end
+end
+
+desc "create a release package and upload it to google code"
+task :release => [:package, 'doc:archive'] do
+  raise "Not implemented for github yet!"
+end
+
+desc "Generate document"
+task :doc do
+  sh "#{$EMACS} -Q -L . --batch -l doc/yas-doc-helper.el" +
+    " -f yas--generate-html-batch"
+end
+
+namespace :doc do
+  task :archive do
+    release_dir = "pkg/yasnippet-#{$version}"
+    FileUtils.mkdir_p(release_dir)
+    sh "tar cjf pkg/yasnippet-doc-#{$version}.tar.bz2 " +
+      "--exclude=doc/.svn --exclude=doc/images/.svn doc/*.html doc/images"
+  end
+
+  task :upload do
+    if File.exists? 'doc/gh-pages'
+      Dir.chdir 'doc/gh-pages' do
+        sh "git checkout gh-pages"
+      end
+      Dir.glob("doc/*.{html,css}").each do |file|
+        FileUtils.cp file, 'doc/gh-pages'
+      end
+      Dir.glob("doc/images/*").each do |file|
+        FileUtils.cp file, 'doc/gh-pages/images'
+      end
+      Dir.glob("doc/stylesheets/*.css").each do |file|
+        FileUtils.cp file, 'doc/gh-pages/stylesheets'
+      end
+      curRev = `git rev-parse --verify HEAD`.chomp()
+      expRev = IO.read('doc/html-revision').chomp()
+      if curRev != expRev
+        raise ("The HTML rev: #{expRev},\n" +
+               "current  rev: #{curRev}!\n")
+      end
+      if !system "git diff-index --quiet HEAD"
+        system "git status --untracked-files=no"
+        raise "You have uncommitted changes!"
+      end
+      Dir.chdir 'doc/gh-pages' do
+        sh "git commit -a -m 'Automatic documentation update.\n\n" +
+          "From #{curRev.chomp()}'"
+        sh "git push"
+      end
+    end
+  end
+end
+
+desc "Compile yasnippet.el into yasnippet.elc"
+
+rule '.elc' => '.el' do |t|
+  sh "#{$EMACS} --batch -L . --eval \"(byte-compile-file \\\"#{t.source}\\\")\""
+end
+task :compile => FileList["yasnippet.el"].ext('elc')
+
+task :default => :doc
+
+desc "use yasmate to convert textmate bundles"
+task :convert_bundles do
+      cd "yasmate"
+      sh "rake convert_bundles"
+    end
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/faq.org
@@ -0,0 +1,158 @@
+#+SETUPFILE: org-setup.inc
+
+#+TITLE: Frequently Asked Questions
+
+* Why is there an extra newline?
+
+If you have a newline at the end of the snippet definition file, then
+YASnippet will add a newline when you expanding a snippet. Please don't
+add a newline at the end if you don't want it when you saving the
+snippet file.
+
+Note some editors will automatically add a newline for you. In Emacs, if
+you set =require-final-newline= to =t=, it will add the final newline
+for you automatically.
+
+* Why doesn't TAB expand a snippet?
+
+First check the mode line to see if there's =yas=. If not, then try
+=M-x yas-minor-mode= to manually turn on the minor mode and try to
+expand the snippet again. If it works, then, you can add the following
+code to your =.emacs= /before/ loading YASnippet:
+
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'the-major-mode-hook 'yas-minor-mode-on)
+#+END_SRC
+
+where =the-major-mode= is the major mode in which [[sym:yas-minor-mode][=yas-minor-mode=]] isn't
+enabled by default.
+
+From YASnippet 0.6 you can also use the command =M-x yas-global-mode= to
+turn on YASnippet automatically for /all/ major modes.
+
+If [[sym:yas-minor-mode][=yas-minor-mode=]] is on but the snippet still not expanded. Then try
+to see what command is bound to the =TAB= key: press =C-h k= and then
+press =TAB=. Emacs will show you the result.
+
+You'll see a buffer prompted by Emacs saying that
+=TAB runs the command ...=. Alternatively, you might see
+=<tab> runs the command ...=, note the difference between =TAB= and
+=<tab>= where the latter has priority. If you see =<tab>= bound to a
+command other than [[sym:yas-expand][=yas-expand=]], (e.g. in =org-mode=) you can try the
+following code to work around:
+
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'org-mode-hook
+            (let ((original-command (lookup-key org-mode-map [tab])))
+              `(lambda ()
+                 (setq yas-fallback-behavior
+                       '(apply ,original-command))
+                 (local-set-key [tab] 'yas-expand))))
+#+END_SRC
+
+replace =org-mode-hook= and =org-mode-map= with the major mode hook you
+are dealing with (Use =C-h m= to see what major mode you are in).
+
+As an alternative, you can also try
+
+#+BEGIN_SRC emacs-lisp
+  (defun yas-advise-indent-function (function-symbol)
+    (eval `(defadvice ,function-symbol (around yas-try-expand-first activate)
+             ,(format
+               "Try to expand a snippet before point, then call `%s' as usual"
+               function-symbol)
+             (let ((yas-fallback-behavior nil))
+               (unless (and (interactive-p)
+                            (yas-expand))
+                 ad-do-it)))))
+
+  (yas-advise-indent-function 'ruby-indent-line)
+#+END_SRC
+
+To /advise/ the modes indentation function bound to TAB, (in this case
+=ruby-indent-line=) to first try to run [[sym:yas-expand][=yas-expand=]].
+
+If the output of =C-h k RET <tab>= tells you that =<tab>= is indeed
+bound to [[sym:yas-expand][=yas-expand=]] but YASnippet still doesn't work, check your
+configuration and you may also ask for help on the [[http://groups.google.com/group/smart-snippet][discussion group]].
+See this particular [[http://code.google.com/p/yasnippet/issues/detail?id=93&can=1][thread]] for quite some solutions and alternatives.
+
+Don't forget to attach the information on what command is bound to TAB
+as well as the mode information (Can be obtained by =C-h m=).
+
+* Why doesn't TAB navigation work with flyspell
+
+A workaround is to inhibit flyspell overlays while the snippet is
+active:
+
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'flyspell-incorrect-hook
+            #'(lambda (dummy1 dummy2 dymmy3)
+                (and yas-active-field-overlay
+                     (overlay-buffer yas-active-field-overlay))))
+#+END_SRC
+
+This is apparently related to overlay priorities. For some reason, the
+=keymap= property of flyspell's overlays always takes priority over the
+same property in YASnippet's overlays, even if one sets the latter's
+=priority= property to something big. If you know emacs-lisp and can
+solve this problem, drop a line in the
+[[http://groups.google.com/group/smart-snippet][discussion group]].
+
+* How to I use alternative keys, i.e. not TAB?
+
+Edit the keymaps [[sym:yas-minor-mode-map][=yas-minor-mode-map=]] and
+[[sym:yas-keymap][=yas-keymap=]] as you would any other keymap:
+
+#+begin_src emacs-lisp :exports code
+   (define-key yas-minor-mode-map (kbd "<tab>") nil)
+   (define-key yas-minor-mode-map (kbd "TAB") nil)
+   (define-key yas-minor-mode-map (kbd "<the new key>") 'yas-expand)
+
+   ;;keys for navigation
+   (define-key yas-keymap [(tab)]       nil)
+   (define-key yas-keymap (kbd "TAB")   nil)
+   (define-key yas-keymap [(shift tab)] nil)
+   (define-key yas-keymap [backtab]     nil)
+   (define-key yas-keymap (kbd "<new-next-field-key>") 'yas-next-field-or-maybe-expand)
+   (define-key yas-keymap (kbd "<new-prev-field-key>") 'yas-prev)
+#+end_src
+
+* How do I turn off the minor mode where in some buffers?
+
+The best way, since version 0.6.1c, is to set the default value of the
+variable [[sym:yas-dont-activate][=yas-dont-activate=]] to a lambda function like so:
+
+#+BEGIN_SRC emacs-lisp
+  (set-default 'yas-dont-activate
+               #'(lambda ()
+                   (and yas-root-directory
+                        (null (yas-get-snippet-tables)))))
+#+END_SRC
+
+This is also the default value starting for that version. It skips the
+minor mode in buffers where it is not applicable (no snippet tables),
+but only once you have setup your yas-root-directory.
+
+* How do I define an abbrev key containing characters not supported by the filesystem?
+
+-  *Note*: This question applies if you're still defining snippets
+   whose key /is/ the filename. This is behavior still provided by
+   version 0.6 for backward compatibilty, but is somewhat
+   deprecated...
+
+For example, you want to define a snippet by the key =<= which is not a
+valid character for filename on Windows. This means you can't use the
+filename as a trigger key in this case.
+
+You should rather use the =# key:= directive to specify the key of the
+defined snippet explicitly and name your snippet with an arbitrary valid
+filename, =lt.YASnippet= for example, using =<= for the =# key:=
+directive:
+
+#+BEGIN_SRC snippet
+  # key: <
+  # name: <...></...>
+  # --
+  <${1:div}>$0</$1>
+#+END_SRC
new file mode 100644
index 0000000000000000000000000000000000000000..a64b346e650cecd1fec5ccb082fbf14c757670ce
GIT binary patch
literal 3275
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
JPDHLkV1lz2WQG6$
new file mode 100644
index 0000000000000000000000000000000000000000..f07ebb5cdef30d8c8d942d07981d23c7edf6aef9
GIT binary patch
literal 3169
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
Hu0mjfx7Q4M
new file mode 100644
index 0000000000000000000000000000000000000000..d55828ed2277055f51b88ba8ee1259a0b0dea10c
GIT binary patch
literal 485
zc$@*{0UG{^P)<h;3K|Lk000e1NJLTq000L70077c0ssI2tB!2t00053Nkl<ZSi|j=
zO>WyT5QV>I%&Nx-&^zP`IZ)5ktMnLMX3=dD#F6;ApnfQdhAl%zHsZpdMx&YcLyqI+
z_g^ezEHDywfCN|wER01sVGLjpfD)0C^P`hNIsruYW#(mifulPo=MOCloCI+`drllz
ze10YXJ7)tj@$ug0oyiyyKE<D3KUuAKeeWC5&KY}&j+lCjnPBAS2~^&Pip1$f&{|Q5
zHEcZP=4Vyi+7)WNzSONmI^(S<0O7$~vK|6(<kueaJl53`g;+5jGNK?neWX~zpDU=W
zShHwzyF2QoE~@k`f5R?q8@NPDl^X`4@4P-H(e=*vX~;B)NL>OgYdfBwel+m@dpmFB
zR%sks9w_anq^Hu;J}c=0gD+P&UA-*}Zdud83FX{;Vzp%4?p8@N>QLA)U4a0tEZ(M$
z^qBK|fyK(;&E2%Vnq@cL&7y(0VxfCj=mvEfQ(0Fk-0Q`z9_zZ2x74lXQ8ec4K8$xz
zQu|`CkyaJPsqw9D=Kp{?O`AQ|-m|2kq`vE3=!UxOX|LO-(T*%Oc>Jhyc0`Zp5j~<u
b^uf{ptg@vTFnA0$00000NkvXXu0mjfJ}~9h
new file mode 100644
index 0000000000000000000000000000000000000000..c783d718b7b2887ac752ed4febedd3d370be44aa
GIT binary patch
literal 441
zc$@*b0Y?6bP)<h;3K|Lk000e1NJLTq000pH000aK0ssI23rE4|0004iNkl<ZC>52E
z%`1da6vpp8=iK{#%sb<yM#=v~Huj3Fg_R9uVJGqjjEp3ugr%~OB5Kk^BS}&|Liq}>
z8RNOHScrvlPxo}|`90^HOZEQ;HFwVEJ7!zj3cClF>hIV;zG-bQ<U5MclVm((&6u9C
z_4~)<SL*5ct!s4cjSYuROq})749*^Fed8OyG6NHvCwEoO1rqy`^+|HRH25|SZJb#t
zT}>}neqhDb!^Q0ji6dxC6mWwj2}MH7IgcAdY03;Q>>r)oe`A%?yP>(V<U@%AiY!M~
zd_ziW#YDpFu|zhp(mS=4RNsNUB(?6zt*URFX~1knkw)TDgp0NIn0$d#<@R-Ct_)_d
zP&$4{U_^mv!_W{zu1G1315C4K%Mu9Z?99%2e{pZAd~LFpL&1j;X3?bTKu{d%!eN3|
zETNH%ES9esKw!zT7DAKMA5lkjsM`upK@u5Z42gywb|7tp1m0g!Pxnco&k->(L!r>n
j5O`<7a8AF<9ald9pL~pm_5^2200000NkvXXu0mjfHd4op
new file mode 100644
index 0000000000000000000000000000000000000000..d2452ac4f22e3e954c9a15b899a4cc75b0d73ce7
GIT binary patch
literal 502
zc$@+D0SW$zP)<h;3K|Lk000e1NJLTq000pH000aK0ssI23rE4|0005KNkl<ZC{vY@
zJ!q3*6ot>Z_rBlTFHL{Yw$LdkI_M^XIw=G@sFQ;ZF1m<=gA{aeD=6qBg6@Jt6;Y82
ziXe1Qhti=!8=cHhp>1@q4bmjv&vi%#ar4aQJi~d+-SMBXiStiA%dN;>-#xX~&O5z=
zz(1H^vVS6-nx5;4F$A;0=$RJVxO``R{^8l#PpjWHe*ZnFjaM$7sMW8&%rt14ND@p(
zqIVUEe&5`lzW3qUrNhn54heUFAaLx!*!BA#n_IaJr;-K+vrru<W3Ju2pw2C|j(=W1
zb7=By<0t3<Pahm_EVrI7tcTHx4n-L-31(6;$+Zj$(_k|5?902`lSlTBF0O7Jt&NNY
zx$tBq?5^5yl+-jT6(&Tfl*9m_@NVH(9xS}MRo`g$PVU<^b@P25)vBhcN+J*fG>{ZH
zz(lohIKKYs%*-yItM9q-XsOxGv>GKf289ZR0IdHjNr)gZ1!#P{xYi+FHGb$&(5MVb
zRSHPD!vK;Fl5jV12{e_Ye6iB9!N5M-RK!8T0lEQz69hy^M*)hu3%zs-NeD&Y+|fnA
s`Vt%<;3SoVmrg>6z9ND<Z4eIr0c8J`29iTXI{*Lx07*qoM6N<$f*^k7Bme*a
new file mode 100644
index 0000000000000000000000000000000000000000..18b9559de682b2004880080943a45df9d2c3730e
GIT binary patch
literal 104
zc%17D@N?(olHy`uVBq!ia0vp^oItF~!2~4b=Z1hJ^gUf1Lo9le_k4L{%*=PdW8Iyj
z>GRoo@3by&c7OM0@<PS(yp9udYyT8RoSwUIy$nN!eBxKl2M)J@S{XcD{an^LB{Ts5
D;7=oD
new file mode 100644
index 0000000000000000000000000000000000000000..b361e7b38058f271a77df9f99f6e84e4aed19da5
GIT binary patch
literal 712
zc$@*q0yq7MP)<h;3K|Lk000e1NJLTq000F5009^X0ssI28#1dy0007yNkl<ZSi{|w
zO>!MX41~WHs!)&xJMP9ExeKSr1z12TF5E2iGvjPh;KVjOSNYYv(TrN%Esbn*ef0A$
zzuxQ2_wSyre|qOfKwyH*AHN5{AmfZ5z605oWII3@A+V$X5E4j&sH>>cD5d=c`P#38
zfpo)7xdQ~oDdEWggs<a>>{#{v$;oG=)Wp}pJbQJYya|LzYa<ZX{Q_AbNsCYfa+N3$
zN+Hu|-F!@mLbY};q46yVQ80Q}N`wlNX?{Ce04WJdo>K4xAQ7E@2+RPterWj6Cdl40
zlDzmvQysnP#$5EpS7-_f8n3Jsky!E+KqM!DB@cfzN4wuqxpx@}qVs$FfwrLaqfp64
zr1nBfD!e`g1=Np|uWW^cu|}U_FUo%&NQ-xqxbS)mp%|w%2`LMCT^|JM|IKgzsrT1T
z5-23sR}m5$sn75j3x%cy)&A?$ZQ5w#wNpt6d^9S4?*6;f0iqgZ3(SFIP(Th<oia7u
zQ2BGs>(O%+W%{LicJg~A-F{oghfZxqO1jbI!{;HS{Ke_{P}#SSwX4f^1mtvTapF*0
z&Bs40nO*)Fw@4S>)-$G78HwW0JJrT--6D>Ad|dN)ehCy;`!#S+N|G~cglC>y^ZA}9
zJ<ok8&uje7JgTPyu$((-m){+~7Mp)O8uz$qeRiekKXLT~!cj$`p4T%mkDvR7I7fvb
zxA$$3bDO*MdwAgRf%4<0$7yI|@{d0stM!a!<;PDRt&y#VzaBHrla;@H`2Bu=gQuU*
z*Qxux`*Qqq*ZJf*{`UEvkN2zBuQ!J0mCye(|9ypgFIw+&`|DridsTnFHT~YYKmY%J
ud|CcqTaUN)KE5=6|F!q@t@+_geE$tgB%jdIM1C{?0000<MNUMnLSTY|r(iGu
new file mode 100644
index 0000000000000000000000000000000000000000..b10827fcca631b671c46fa407d0ea62e38fb94bf
GIT binary patch
literal 60007
zc$|z|1y>wRlx-wPa3?^p5Fj`NcXto&1PJc#?(Xivg1fr~cXxLP?y&vs{(+ryMtZtu
zsIGV4l^!ZoURDh0Bi=^<0FWfag%tq+0=xqcaFF05qu65r_ylhwu5J$i2pIp}A%L_D
zT=1wRQz0RFc@t{~YkL!G8)69|Az~Xl>tCi8MgZWlTprtLj$w;Cz_-CwfFxOln;&lD
z@9P&DPzdc0r|Pau1tVn_NG5xv?bW?@+vM>BOQcT*_8qE`czar+Sd&$oKp5?WDvwy)
zwpb{}o;{jBx8<P=A^To^{oYeY{vf^Mg3{+?D97$GPo<QtuEerX!ajldsBrEcM@6Ng
zrqXHS3$VVQ)^Q=veXVydMP6-6@H9)P<1)CBh-h{T6G9VnEL;XvQXe8i>?rhvE{r3t
zzE+5|jU0nCI!qc;#9xDPi5;UA{(u#;TE&Up2TOdh#DkJxx|y+dteJD@V{}i8lR%=^
zbl!qAtg1JE1qFYMXw#x%Z8A0NKVkC*Up(H|>V?WGC*bC^ZPd|y+4^sLt8axP6zB_G
zd3Dl925ff$>A9YNgI~nk0xs_v2r7fNDvfijx+(RM{37{W;V<#t=ET^<c-mqa&juCf
zfL(odNQ|buUW3m}d|QjS6-RpOLf<gA!<e9n6<CIw3lyg|`9>UJE)lWVSFcn`yAT;R
zkm;0vo(~y)|MdqqVW?U-^ykYDpDR{wSUrdLo$+<`8pj`yG!@T{emX_e^&d8zHPkJa
zYR7-oH+yvSStH^GHX9K^RDqQzHV{{o0RZ!#0N}t10C&;=;ClmZ*8;%NJpeGY0>CHC
zf7U_h0B{H=AuOQevV6*8tcIz&a3H%Ri-juehIQme%zD~Bxab}!nm>T)eo8x~md`l9
z*vfbprj3S$CW6Kl;;`89<NV%0PyG*hrNnyMM%Lh<aY|;hy%oo8mOHXWrx#C3H{!2{
zcjy3DxKTZr?@Q_6CPRGtr%}D2ciJ53cYc6o@DnZ!i6J50_mnMffMI|%txz0YRpgFl
zaA|q5iJhyKz?hK!zkLE#@w+ECH*GH-ab(mK?m_wlnHfLv*jQ1LK8^n4gR-@?y{M`A
zL*~v8=c1zr>~}Nye|p35DfB(aEnBj3I!f(Ee81?DzWc@CpL#k5jwNMi9r4|I9ulJO
z{oE~wlEGREA2$C5N#D=}zy^}J{Q!30P0rJou9<<=#NwLo5+5D#Gl+vlb;2J)C%-FF
zc&+V<CnFYq8BtA?EPzZ>R#U@lbqrsC+J=WDxv@ss`#UyPA2;$1!@42$R7xBk!gq69
zUEEa~k!bt}G=KzqhfekN=4dRukKEze*JpD8%i$ejTkUWv(z*CU7v!YPE|5FVzwyRh
z<sFyUCMhHqO;U}^`x?+#2h)|K-0dqQ?8VD$8X<J7|A2o_iVE~HNEXzPTIxmY*>Mco
za%NVnR&q~hs;isUYwYjzi(PVC>+6$XhpQ*i($Ktg{X!GO-T5LG<>Kzb92H3`bO(eG
zGn+Yzyik9@$Hxzd5zU`6tAGER;YTJ>pxA7GFuvsvyE0#_P~n_t&I2dVJc$(sne<wm
zAO<lAG4Rg41m&ZJ-0IvtZS=c{!fFk<h$pCe2Mz}ZmpO)h?t>(bqx$FE9?uB9K9g+$
zCJ2C}d$GIuA(-PjG@`Ni!pCfd`L(2Hb5%+>+gkwAM;mGN76TDju*!+ej@6(Y&F&4H
z?Nx5@k$j`M$M~~djY5L&H+kehuhYh`hKFS$kt_dlGb7i~&_JtEH)&RH6s*zVa=E>@
zsK&;|cGsJfF!`(B{0k*!Sb<b>7N2*APP?0~$7P^S<vV}R-=U#q*Xv*6dU^%YwDk1!
z)YRd5lw0ADJgP686W35Mh?JC+xXdQ<78Yfq`HymsN6$~sB*d}eR_kr4sj1)4L;pO+
zb^Z1&wAN`)d%7`w7x0&CtcL%&p26{>^EK%~O%zpzK8>%_IGRxB?d@WTM(nUs56P&d
z+kk<A!HQsUY0DKs9B8vexTHfEdy9f<c~JK!bkLYQ0T862aHv<@w1+%90#fB;TyWam
zgWKBw45UNzC$@(JCVHPH&AM`6rB%)Yb0|Ij*<7L=&=Y437SbA^BXUlf`WQhR{*;_I
z_0{(g%bD?$MZgWaTrlm<q4$C@m^AY-qN@6ROa@ItBNLWK8J1_7cHkOE#u0^pf^vU-
z-HZFfNPsSRqs39GL@7*|^w^VsrmpJHG_8<Qk_`QlTMkvYd5}HIe6dP@B8#U|yOlgq
zvIGStR-7zJ{7)Wr?w7)eS{lu7asIF<PIh)J-tQe+bVYC9iQxnv!X}N9jHvJKg?z{)
zLWKntloD_JQAZeH+I5KE>gwvu7b=t8H~&uMKjg>hwl-Lvot<rYZdC=L7_7dRNXb<~
z;W)#g^hPUgE}}W?G1W8<j-~5w`p)%^UcgbPN}5S%E>7=s5?|FonCKxfoN)E@B*ke=
zvm!feKnQ!W0uVl%2a)1*!E~9W1oTn9&DU@vcnPy{4Gl$nXHvU{kf;Er7I!cnGr5sU
zT{uPkl~}-|WC#O0>bCWl?zm1be>eo{nXBoqe}@v|G^S+IVi)L0asW!3``q;U-{i8y
zzmw`_<FeR8<#8Y;H@796&t>5!42}Fp!?HSKXto64Oj_KWlLd3tYJZKzei5Ugp#i#<
zm!C%HJ3X#;L+k4ug@prJTU)#J7<g&ohb$~Cz$2i4`7)AAOoO+90a5aJ<>ijRz<ysS
zSg(gISO7ItShC<MoW4U`Mg}WXSg}OOB$7<RzgxaYHuKk58X8#LAHHjU_v|97kLuBo
zq@<+c$Vzo*m{LzqDmy!z&eHhB;o;%q$z{;P`=JHY)YNdNMB(}e2IfnC1b>Uw!!<~i
zCjUn>W9~;B@HV`6_2<cbt0yodB;@)2Vr6MbyVZ%7l$4Z&1VqZnp54yjB{x0Df{G=R
zX-ZUBFh6qT;dq$ZE5h{c3D_L^LdeI`4|aDGjvoR38GeOA(w2wpDHoEV>2zoaTpW6=
znL+WICNw|Fj!;w}V7AoQ)JS<?o1w$x$|JnNat=nw@ywebnGgU*GX@%u_+{RLBt66C
z%XZ1^03VL)kY<FxF?y?=DB0O4off1sGgIBYt6|E08IOkd6>W_;UjI<f)}^p9^Drnl
z^oZ%Aiq9ep@HUB(RNo%6=h41*era{u_w>B%6{~s&QnSS}cqVw8V4+}Q&5-aoQ#zed
zWFF$;Mi#g7M>J1qHU7b(pe<Aov#Gx9BRO0QY&4M+FS(p)Y^Q%yQt~9&oVZw%L&S}c
zeH(v*1_W(x@f1r!6uvw(jhOUPO^;v<$ZX!aQGS(11ils$$P{&YG#g*6%emdy+}@Ol
zel<`}qSjxBBZ=B!#v7Y1km86k-{@#BEiL6oWR}rwce{PMJ=xmY;>?U9h6@$GI$vwe
z<Z|9WI2i2f6BZR!Q5r{r5mHlI1Zj?miRpO0-2Hg=TcF_9>1hOGhuiJ(SUTI<+L~sA
z1xQ=CK~qN#<R8%zV`DG3`@;t!@oQ<)!PhU3*W@y3!~t|VZ7$DuXBzcpj_0eXW%CRD
z4ATBENV3_yYi+Lfe#EkwoLE>`9{`Q=yUARki}m*Ku&|FPC^%ZU5ksgFWN}i-bR1k<
ztxZiaWZ$&h-Q1`Whs!k^J3OCRNlEh*@<j`|r`Ub`w&G)A<QuKle*Y%x4#_cn`nT0P
zG&H26qjR=gA3tQsX0@6_c|4Ub#=*fMlg^5Sgfuoj9u*#LK9%>Om*Mg85j>!(p`jw^
zbfeufJt>JCJJf2Ub)mshGcGUe<Hslh?uX58|ESMgK>@)CeV?4)UizDwa=N-I)>>!C
z;K^L~`{0F97b<m8J|dn@H-ASDt-~AJT5J75$X7x1X(`v<7+`mNaq;Qw3~%MqdwGui
zB7?`GSUP9EP+r^ENW|n)6_}`8-9-_y+t()~7PYvtbo+MmgPN;#h0Th9%j=~-9A|@G
zXSBxRLZ|&WDB#es<;(NkR|<*+1eA-_@|A2SHYK|5<AuR2LiRnzxRG3S3&tXgDT4Q!
zEG|z!?K>zoH)e|1&1VTXfKN&Y*gW@j_v)EQ8$VkbLLv--*zA+IxxzZW{Z^r&JTQ^<
z1+Z}*%yu|1mfpEP-ws0BgV4M1+Lqx2DPyfEmB&5k_PYNXN4Y0AjkTNeb4F*#_C=2I
zg#3w0fwX7$Po`oz-Z!pRQ|eY@oaa*xPKN-X3lC|w+<zkD*TU<l<ys#EzYgJ_^$_oe
z!>MFl?@X6>uUnx|M(pr@yJjtNuvSdIF@{V_so#yQ)>^(MN<#3{VC!~zy&hzH|5CrZ
z+8Y7u%9L7GTx<fC_WpdW7q?QQo{E=Ohcq@}q37nQs)`}vG8~5<*j#US&&tZ8qoXr5
zH3bof5h^?w^?9Ym(Ol#@vGB-vBI|6eRW(;0x3avvd?K5#6IAaKB{vYn+1_udJ56SW
zup>3q)zv6Oyt79RZtZVxug@TMu)_NXqlx6CrNK9;RV&&&pPfXMMRMf{I2|azeib1@
zhhLD(;@)z7OV;&jw%ZF+qj`Hg$fnn7lCSOra;8i;ola9yQe2Lv3l1i-osVZFHkkx<
zqX;-^><?t6q(;6QkB_Fa$(1PW@9vIf^YPKrmRD8TtTb3MrA82kl$Di%;8!USf=Bf}
zkOljg_w{C`kINb0CrQrcwBH{XOK*OBtnGNFdtB!s4teqOlhJID$E>$}zLUXcg^P3A
zJD!^{9tEvUdV^KF%_S*NrrGLr(cy{xu|Jwxg<!E37KkF`X|d{sAr1*fA*4~OqwLH9
zB^Ci8Jh4=@)8#Txt(+LHUh%Q_YL85yPrHTLaUeo+jR2^!?G5_e>ZGorQK8f7bZ~dZ
zKST6mc}6jXG4i<%<#tJYoDG12^~p8G@VF;DUJU%H9ul@Kr9{GPLhQZAsnL+3^^BpW
z@so%sg)bPY>tH<IjOFHREW4FI;T@9%74LW>xYGsxwJA>P{=1smPiy)Vwsfd2PFhHx
z58;1Z5hPL(6Q~T0)ZvY&Xu6wO$;fj2Am!D3GKG#Pt7+U`VcfhVO&y6R{c_~05oiA(
z-LXIbX02OH6~ao}DhwitJ9+teR$yyg9H_QqEKX0`P34Jz;)FB0xx2et+41y8E}OTx
zxmoleNt%46!_z&T)lxJ9_Y$N{%|<Jdfb)&c_lL_JBCm&BP%cN3={GvPy+Lu7{@T#>
zLzq-STwGjHQBhuAUPVPE82K}M)PGISVfQ;adgAr@9)tm(eh+k^22O01n@QSwjgeHP
zPWy7B^*adm3Et;2p<v`W%1G{sm6a6)Q7)O8ySqCU^ZD76TLlFL5Rm2Ct#_-<_SUOS
zQy`&sER&#n5P^oa3FK)MzL(AOb1PHRX7hy#kZ2Q6Dsz6ixVXS^@6E{Zjg5|C{`DG7
zVVs(pij9q(DU?ZP(D&=sGg)oA1i||aI~*2;@a1qSKPM;0?zNn7Jd10gMF!v5`My6K
z`-lavy&IJfuf=9dkT@iDrpS7=#%L*;PqJ@&D4slUzBD;4Zn{)18?84O<0s=tO}=Op
z0h5Qz)5!u;^@FzC(>ag3lf}xuc2QJg<2}kq^8MkQ`O85z3L!56;Kk+DCZLp%-pWOM
zbDQujxk88bjA<g=uqIU30}T^XDJFa4x2wISzP|A56WY|&pj_tD)k!7R#}9fL>8Z^|
zC-dd$taI?l$Yq+&^BEkTu!s*ShA4pJF(lyPmV6pH!*I{_bKm0XMxsF(zic${M-iMr
zzl}q{tvP#AKfP|QJ<jAl?QS1^=!xpTdVESU+?9EnyWeE%0*s8fCVz(m+6Zz?5dmc6
zs$U-luOIfP9kxi9>jDXQl02>gaLCQyv?@#yGP0566wz4EC(`M@AbwuH;;SI7*x>)X
zd})V~n#<-B&Bp5yQ(xtKAh*?zu)7rmftnKL)DSV4Ks&{(%S&Cm3nr`M!9HM6`NBt`
zL@8f1@_3`O6HH|d4TQWNO&aCn6B7$&^{lL{1Im;s8<GXnU=4?cLU-5$V!FO4Q6=hB
zUM$y}7eskRip~@(<VWJO@p?Wb=%-9h%14S`uUL0}=5mVIX|lT!MGcrjpiH?TllZ7a
z@uDFwUu86s1nN5mw7#`9eXRJOd)yi3&jbV+F)_sGp*_95<z;1{Ct$T&P07fhNtDdy
zac8wyWcU)CXSzIlM0-dKei0t3ASErW<^E`@WI>#MifAOBa(!&>!bz*+Nm5G6BA5a9
zMv^h0V>2_`!F~Zv25A5{H#f9QABb>022|)=c}kZooKg3%JXFCO_dSxqOfK&ZkY6}1
z*84X)GSlOGtILw3qlsr;pdjhA+u#7j5@t$fO!o1?jqKl)SqJbygsob;8?bqLiU=M1
z_;fpCJTV}X0ybdRrH7#~H1IHAP7Nk6?e-`3uLU9_N&InL4E;eZp<kU|HoFte=Zoje
zQl*p9)1}}Ki~|N4uyshpulm6ucRu~e$pILUnYXNnB2U95dJJjX$Akf!bAs46JnI$T
ztWJK%7e+v*I!>*@kAOSIdIOow`r}}ff5BHtap48)93t;cfS5bt{{AcPyWi*t6b{Z}
zOQg#s`dDT^MAx#T$rieuo_B|kJHZO3Y(^jR2cXyz-|Lm$<kaOVz4C#}S#M6G#*zB%
z0lq?u0NFQ30)yKe8PZ2I(xrKnJ;CJ$&gzKC?ghF=hPv(C7}Gg*u_e^;zQoRmi*swm
zd9v<XKrlXyhGa^`JxbkKAgvo1&%^R8EG<7k*4Ea>OBQ?#%mZsBA|e8E&GIrx<K?zH
z1E82mfUy9s#&o6-^kV<94H(CmzJI4)dt$;x%+1ZEN<5w|`H_^A1WGL!<3NIZ29pIO
zBqXcla-Gwe#us}K!l1{Jm6fGR3?mzIzF0rHbpxgL@yaMH&n3&*(eX2b9)GLT*^S$4
zBDE^2-~-Rfs1m4dAhP%slt51iDm0trvXYXL!`?7fkbV&IXR`!tOp$iaXBAxNZuk3_
zM|(}pmH(L3<Dm-VOSoLn;J*LsMFAZk$lab`pl&Xg`Qb}MNZ4V%K-a7_UPCi+-O<sp
zGZ1M$nIquk^>%x*@WHFwHe-_s(}hwZ&ehcwoQV1P`D8lnKeC%MH*-zw%~~B7n*#cL
zdry)0Kdaf__GJ<kORB1xY;VoR(pVt)OO&!WTx%?YkyW?1O~R-g1L5LwgbA6$LYJCs
z^E3VZWlKF{QYcqX=V}j{LNVI8dD59J)LPU-<V!kHbJgwlU)rp+Uty34d0ZyzHQAze
zpq&C;bt<PQ!GLEldaZDKV!c?^U9Cdv-yM?@^RMXst{BC;&Rh3<SXr$t0r1%pdMuJ-
z>;-_QJN&mZt~w+9Y9oArUl_VmkIs7^6Vhi<4G~y>t2%|X>LIgxqCp3KqvNu~rL)Jv
z`V7TCuzfOFar(L91o%v%z6F2f2AIu5lWBH;jgrD5lR)HXYqmY&ROHpcLU;Q%^_51;
z&<HbIetc)eu-p)^Sb`ygm%_1yf>ru1YVxRPwTo-lO^OaY-EYlg<=Qp0M@L7O79F^c
zxqkt>Td~CL=Fs;3T)SEgWEBSUd763+o}Yao7oG1N?)T>n4Go-`vWr{pH-}STBG|Lz
z=w(=IaYTTJFHusZkYJ*uG&va0M8Kgl#1+kz4+sd5&R|!lGKhSJ1m!gnkL7r+wJ|?`
z=jLceNKg<&H<!cV=H6ancDA*tY01I~=mA^*FTz0i#K+HoL1F3{(ih~PtLtkd82`%3
zN|jP1c=*up@RRlSRxnMQnf<A(qz4WiT0nvP@2U?NSRo)Ft`8<aU_Q6GURUULg1ur{
zt`g38cXeg9(r}i-Xkf_nsh5FPqYe%QrE-`RjXU4ZIH2$d?TaXlPMg}M7B4R^t!6{n
zg9m70UteEa9geoo&c+y|Z`038y`PS174n0ka3O%?oo#G7t%s$<DfOkL>`1)C$MZ~Z
z&~+t00x23T)>`h0vctl{eo1GBQU2KmI5@eYaak?8d?1*bGmKKO$I?WE#h@mfk0<qS
z7ONFvV|$)lGvb(xo^H6{;V~$rO{U70PF=5o9Lsdp8RPLfaOSJ48B;b_iOCB+i)0&E
zS!W8RO)>Gg&aWqek@3kBB{`BTF)=Wfa=Nn-Ll|UI%4bf5AfeJ(&0z@gXS!Zt|BhfR
z*igp4kQx5!T4@v~g`wAdx%%)ENxp~<1~TEpzhf-)1RM$qivxgun!iYFeZ5I-C~s36
z#_$(0p}%w(kEbs-1TJ7AkJU4h9HI}9*x2>;$9g~m@ReBtR&;rk|8BbM%;WWR(8I1s
z_89-*`xGd;#6$pHgRtQyP3|boEqcKk{ae6<VyrAIHumOTBpO7Qz%&$DvTqSR3^Fbh
z*}52AeQx3R0bCs(|5fha@;>PlUNIpV=Dr4&h}^j}R3I>8JF~M3B4zg6cxBA%mrGSE
zCCSh=H8u4I-{wkHL4^4skJ=Ip+M=PM`3*dSEK^rkm&RfqCQRz??v8+f0QP2F9O(7*
ztgSDOj@0L(@C1u<a)`fwpXu!tqQU+WkRZ9&8;rs@;P>ftf1mvH;KZQ?46T{6IM~>~
zEG;uLGie{@R##VV+&n>Od<z4iItMyRiMX;KMaUyH?sw;(7aOhHpKeD?nBgEq3W|yj
zc6VdQ9{0!avktViw4mv(!4wWgQB8FaGD`}Wdz+hGwgfUW*6VE&Qd03Fd;0qN&;q{;
z3qhKm9~zR7_pq?AV2_fLkQf>ptFNxUyu4(DflS5w1~MRGFFPlv9f4S!p_^NaU~W}y
ztvkr1;A=ISyX))Psw#0gxn#)#kR{=ABO(w>lr%u6($mwkyK5K_lbnn*Xba|TFqNlq
z7=`sr*F^XS<tY;J{827V(#l13aWXUek2kNu#=E{oxVnb&_y3%c;iIpZ&0Aplbh$G~
zS8x6d3xkdeCBZ8t<7nrQFl^Ybm`uzbk<IOvkd<X+WQ2uIK!Y9*VSr5hjqyJNG_~}}
zrGtU~0wib_vsw8PC2VYLGzEn&+lX!(YF?fExu@r+V<Z?kIXOrYe(}<&zKxFZDU%*S
zA@li)F?%gD$>EcQN?KYPK|#U3i|=Cr{hyq-1h@TR(W@Uk4JR1-vuI}?oPOxysMf%D
zB~c<3m-+I4EP0gvxhWoRERA#<cCn4#NMyQgZ9r`y5c3sfhMazyoIM@p5!ZU!NHZVe
z0bNumHAgIk_}ifYfog$NbRi3#jHqZ()frh|JUm*B=mO`!ViT>{46{TW_XI*=M;EzC
znkd{Q_XLA9%kyZ@c=NxcOF4mI`0`J;klkf-C%1l<^eIn0*!kUhsHZvt>ixK#?)O$8
z#X&vaQp?=|{4?t6>R@sKP1zb619Jm$$_(VbpC~PQXuxw1a)CG*DV*R#UDepPRZN&L
z{gkjMehA}$n90J;sa@Bs9rj$72++Fsz#-g6PE^rQ3qQbRg8@C6Ubn;XWWKEA$4GoT
zD%r?&KN}ik9CQ@5awj9*IvK_}+!MzLHil+Dp!s8N&7m8vp@sOnbT(syTwK47r$vjq
zg`KVqEt>G&*}FhZrN+=8R@87pYp<#eH2<74gVHB2-8s*WWek?W&a|IKZez;ZA80nd
z6$VgmeY{93>pmu>MB8RR2g5xG@4n7!XnX-wv-%dhUDKAFoJ}y2K|;LayNk^@fYP7n
z3tzY{`~^)V<6JT`3d>rhUP;<o<w;r@*<j{bFz0;muZM{5r#FMV$FqN1wFeV3-cA^|
zoe-#k5fV+Y3bVxs2yB+?FU%~;hNRSQ+VX9+|BQv6-YK>W;$Amw1u;m1^eH3W!^eHE
zJPci291M3mUrnecu36{jjSP_|W-#aS?Tsboww~TeV@CFfeq*H%y+y~83E(2abT_?*
zlc5h@b2*<L&gBOu*57)MVE)uv89VbP3l!q8M>B|3JKf*A<*QkI-|wqRB;0%r#+<gx
z;yd1nGXi~-%F=8b5gHl#5a?R6xm~Yxi)6i5;}^Xl#obQkBHO>Xg_hX;VV`DP{{GFF
zE6@q*T#oiB+EBV<;ceZ^QR-k*Hc65CVMD(E8|T;8?%E9FGa;_`c-Lanr}Gibg_(*u
z)FlH9)g`fpvp~JjZTl#|FFVOdJ)&BP3af2+u8}xVvh?FRD(QrH+zS*n6bW(3bni6*
z0-3sGf#1RW;U5t=c0w0yAknt{qeZ%r?{6O(Tk}g?7v$lyjT)L5!;;+tm(6#BUvhC>
z*WPissES8Q2*`BjnCnQq1ZaLVGcxDV4E51jQQNvg2k(Z<5qvane4I<viNngJDxOzE
z6q#JkSq%C;<(iEFYe$uxZyE)PLwj~Rh0G!f=%K>wo!=g`DZ|phC@Yv7BU#WR6A+_D
zlO#^IhmxwN<#AfA@u_&W)SJDT-OTH?YKbKNURud49LADBO*#qsmiyqb*z$`{p>Iy3
z&eH1kGxkJn79_2k>P^L4TS(I&P9R3qV0_fXvnO4M@HcBB<P~oApH?oTJurjkuSx%y
zx{cGENBs_A5c2S7LjHVTyBMg&Z=b*a!^TGQOW-CZ(*L}(1A$CCQAEjZxP}bF$Fzpc
z*O?fa`L%x?KGZtiw@_fyIRqGXS&XOImxM+%<1ULR##t^B&!J?<5+W&y`<`yd;-B=7
zwBx=-uJ<5dfX>v8^T;JtXb>90kIJ}DmmkW2SOTf)mF<q62RlrL@Jor}6{?#|Vw)5(
zaJXSpRnS+HU=b0Sp5^tmnCUZH)SP=gpI;d?(iidpq}{MHjABgXot#ga7=%J_CT^$W
z)zS9Tl11=U-e+BR-JhjIcq9M`EH)$IUiNfIUT-+>9SfD#Ui5vHPG8lC`JBhn1P=j~
z{}RB=%=Pm{rz$0;^ZDw3*TBGt4<^vKxHvl94hvJ$Zv>xr*w4>a8bNFRpW<9!V}uHu
znwo+ib^o_1prw@|TZHiOV@++Xf%+ZT=%5mvpPxG(&oUZSSnGC<|NRRGk6dWdf=(wD
zlk(le{h#JHS`KEj>=4X%JIkH;vRUKQiAWkr>&b$4Ph`MH?;`Wn8evB6cgE+P-H~gL
zm;3<b1J&TBAoUT;k4lfJj~BDYep6fnUUO#C$8xH__qe%YJtWJ2u-SyJv;H*CViJ?L
zw7_bZSm)(>>}O0e#?T>;SmW7xJ`c}p!%tGJLhFXS-(1S1QEq5#Z!F5E|M%d!Ka-Y(
z%v4Q)`pA7^N=r=vW$toA_m!7reP!T#CFRJ{pQK8A?a^xqdW>}}BMB3U5c{eEk;t12
zoco#h44O<qZNZ2$`z{K;&U@L!Jw1im#W}&Li;ql%Z4z<Q)2R0h&Eg87xD>?!2W%AQ
z?`BTHM_UzJ(M&(+ctgXlLgpEl)8@wk_Ev`Y-nM)h%OI9jcehghA9^I!a3!B<5;b^-
zTps?N^#&Bdt18l&A*NB@Q&NZHaf+rVxHZbF?j9Uo{5(J=c)vN@(Q>RvNE+@BV|%nF
zT{|v8N?W0~=AtC%(Gr3e{-}?iOr*_V0|U(;OG+JT6e0x|qg26k@^&H|mgBe9Q${x5
z#mFyjeZBr0$1tD;`UkZ3ql9FbiW$O1XN&n}3jYDIJGGcz>TCpN+Hayx_fxZ-?F)hs
z7i3CKxkUT-IUY!~?uy)bJI&1|K}UfGs#bB;-?QKHdGh)apiztKMK0+vOyWK|!pD!$
zT!+_W8}fw8MMm3mzLOsWrkAHX)4rQW)0-kKx70%tl$%3MKnfV`cS1z0W43*p+<oTy
zFxy~{;TJ~K(RSTHIkPd9t^cVqjW@A4n5=-Y_=2y!^cORPEQD+WU01cKHIb$`P5g9x
zUjlnien$X06y3$~whP^P_lH1fg`DAh@nd>2_c*feOias-))%Lz76t}8ySuZ^_6PO{
z<Cd#Uj1&|H_Z!~ExP{*DZ(d$rpnhs~cr>e&jtvbRO&5%WpnXBd!0>)PYiw(4TWfVL
zRr*ue@iaU&b-CH?4<;h8M-)ouYJZI})gP-?=(L**#g*MSxKk8KVoJrad%gcontEGw
z{~#0QbI@VQhh$%d>`-8#EDRM0LHy<7>qza76)*S4BV}N+x@G=W!*$uUqV?ZQ<L4q$
zNcF$8*x4GKe}+Pkx3qoqA+?2|)_U%=Hb@dje90`!&65s^0Zg?KOB2P}sqsXpw$s&U
zcMtp|<tj8_-OX{N0l!m2qWq@JOLkCQp(AqOB89zuCV{du2>90@B~jZtUZ$^LFjexE
z9zmB-meY=DPbqrRs-yno&Be)8(Jd}%?g+_^O*47VQ<c2av*~L4_<1638k;96<hLMG
z(Cg*%{J^UrZM`UTw+$k&i)kpk%vB;@L^FxSdLNm&<i#lwI!w=mPRnuqI*L4#_MrhL
zDe}$?_iW|xIX|2QW^9zO7GiR~wDZr+@da<{_lw2Vg~v*k2o>YWd3%KHsmE4oxytjF
zb}p&(dh+ukQtheXtSpr<ywZvC7uw6>z}Yy#-8`%7lO|}CHzQnHv?Gr4fVk>5lI1Tg
za>AAM$@6O-9w*%y!m#FI5Cyagjo2m#v}8#o>Lp9VrxXZ^iNkHy$R6oBF%?F2w_3e8
z4yhE_L%zbL(Usa&rc<r2)&v&j%ENz|(|Vc*_gCG}=t)IbXwB))8>*5r&4c$cPabD~
z93@g^nn|u$Yrxhon0zeyoOVZZ@Tr&4(fk9=QG+;DZQIMkaEPuL%fE2CSxnYDs~hdc
z=C0nn87acw6bI(ly;_3F-ZiJ0S8I7cq;#ltFFKulNQ*mS+uO|_FIsEg`(A%ozG}X+
zn_&F|$d+wvXNH1{Ahl0;z3x-^`{o7GwF$Vr!Z%vUt=gr@`f;xit}92|G`vLN;uuYm
zv$X8qE<dD-7ot*QJ8K>u?XK9%WW!~{B?{aU^OP9K4}Q=-P*!SF&w9O`k1Ca`4E%A+
z+3c)Xd)ygzTCZ`oSZ&~ZvF`csPrq4fJx9P_Hj`6COw1cp_v-5EktAAsTib6m|J^Xr
z8R|`E$a#6+t|#~|z~=Zbbc3!3Y%Wkhz9Z(Vl>Sgu{O|V@r?X`+EP1}a-k;2u<MX)H
zU25{QINDbzkM#89Q5l=6Y;j4&V#$PuVbLauL8lgtpHvs(OT<8vu48v3PAUTINe-mT
zJXFKA-6gv-a^DsE5<>D0E0;aj9A%Or6kf&s^5Cvq=fktMczj`Vjzl^qCKP`)!kaig
zoRdV#78u_G^1rDy7L7WzXka5CuDfz$mUBmBU)82WVwE49<^oyVMbEEFv8wj22Glzz
zcsPzQLnOz)d;!o7IoeD854x*^xhl_JEL*J&+I~V4JrBgEi#FnOG(4&aE2t6;R&!dO
zv{-7uHb!fp8f_w?$3T*PoO>J@r`uq#5vnpjY$(-K$<Txcq$XZa)wpaVgO4=Y3updB
zHR=qo{j=0kXlNUD`+Q9Bkp>nQ>X+|tU#8HAJirzJ@Z~JuO#A-G-nQ7LbY4C%Rjp1A
z^zucXuWSeJw~C&jWwpO=k7unsM|pTPCCQwDXRT{vH&pqh!5_{E>G^gtv$sTDF8TJg
z`fc^^*K99uhnH${skFmI#q9BcTuorpbU(gawXv>b1rJcs)iSr%zaNQ_AsBShT{*KD
zZbsJE268le>7rz#u$e}Not?xTj<-_XD>0(IZ3W4bqL(>6UiY$%ozr1Sap!HsN4i*X
zh%&RiTtrVc?@s8gW5URa$TJ~E?_Wv|E+husMQ`T~JT0G>SAyOo6>b7|?R_8^&QWLe
zt?obg*v|CJ#7)Qht@a{&di`Dtb3$mPM|6b$kOk|n@0y($`GTAw&aHBMM}o@+yKw8z
z3Uqa4KW9txvdo(OtEr`)M^aO5beaqbKVj8gQT+7QcRR>7&durWu&RJB5@~(!+5WN`
zru@2K!@NM!<eB`>syR@-dV?){dLJL5MC4N@jsfG>b#8}~n(LAA4Bl%Tt4#=?mjSe}
z$R9uc7x6({(`mOPBqT6{mZ_|aCP@Dy0>W4HP*mo(hszzAbXG7ZOOc_Q)@#I(&6(AA
z>us{r(bLOSE+BOOmXMIZppcz4tEWn&A|~#dbtNYdhY2bfj`o8y+`R3_#@zS)4P4vB
zdRWX%03ZQSsF%2--$8VB_w_;@-`h7h&`eWfY^+-EuF03Gu4r=Jz+F@y&c+4tMnbcN
zM9qB^XwCHJLVk1=j!^YyNS>6S?fAQZ2>`u}ge<Ecu!&<Dv!);w;H}&S^aL~?=RN|+
zjm0Z&2CMr&WqcVJA0wWqqQh~R2O)Bd{FANPA5VPug0JQtb?e`1a-9t}IVex|4b`BA
zW<ag)x;pdcdckZ&2AHnDqpb6Ia34X-OoNt)>fuF71tHY23>yxeolst)sW?<U90IEA
z-XGhtwb^qh^#Y0Dd*zG;G2AA*9%8=<1L9<zXpvKmO@+}9d?4*ZUCYyMOU^N+;XFS&
zdI_Suga?^lSiH;g(XAyLXiZNs&Q{<6yD+=EH69n1GfoLqi6fMOelI!?%AS0$faEGf
zs*OonC7dU&`NYsYV6v;!R&ZGcsESjsFI&OGrE8G2e?6~+AeKw*JeYqAP<2M*w;Sm7
zRd|KqpEy2l7Nh))-DP_wxC}MXIqq3~dAxt=POdgmc2PtDT0h1&KPX%%8!b~r>r{ya
zwkvZgEv}X38tzgS6W_1L^T?3MjVMQTX9IVVm#Suoge+|qm@Gg}iEizgY6FB%KoT>G
z2|S`^@2~)Qtih;i<2Oxx=f@rD$DyGiD=VvVjrwiZ^^J}95&BMMs~rqzeRK0tC93eS
zutK@)w_X&!fWScQW;>&9zYn4)os1jlDy2s1tYl=n!9-qFb#<d-V@9}z%qvUomhL`o
zR=2V|-1ZlbXY$c-0Mqx2$N)?!k(zzq@<3Qn%RV=`!?DYj(589YZ9R?fQFMAPF19K(
zNl^+y1JY(JB^yCrE7le$&Pe9_IIY+7=Q+#W=%L(QEW&g@4nJk4XNsj5dt&54BpLe_
z`u_gpZ*^T?F5{W5#3>ml?PaB)f+Q6TTZw^&1o*g6Djq;V22B}b{fZOC?t-*w>MNLV
zU2!kJxQ`dK^4wF<>b!+&33P~+ppA(7O7c5{OoDdaaKDIanSI0EHF!@=|M_~QK^H0V
z6C&^}HCo%k3`#RJX_mL@tgtk_$T>rFk~C^(c9;NNflB7Gs;FJ6-0}<&K&!ZI33SAf
zGF+*&$gI0A{Vj6l0|h|CXr0DD<(P6x#h1*Oll@%sXS+A4W=zR|(5e~qm5igu+K~e$
zAOy%eC11|oE_54T3!RWuyDf5sZyvA>IxRTRNN&ikL;VAxY`9~TetA8mzbxd^<ti`T
z{j7d4(y@gJOc*t+7Dfc{+R2X`f5w;}=HI|_4?zGD7}@<%8S_>j1%;1WDOh${Br^wr
ze%ohe9=nwkR^M_~#J8_(eBbW|lM1x5zHR9aw3Eb9IW=Hq*U|E1Q{QA3njonl%sAZl
zTOzAg)P)J>-Q=-x52BMLW_an6p?zw0AIinj(ymw-cIx0|S_&7=`yv*FiG{_%&Q2Ua
z$m_A#;pv`r5D2w?eK2u<brlvFiG+Y)@9fOyc5?_Oy)0f&DuOR)*kOXX5BurX1Ox;v
zjwky&I~boo^H{HQ6A@)MT5mi(JP3=5dKFtvR0&w=TS98kayKt7OeK>R|GxQsbXFLK
zl((IaNrvP$0I6xw-te`nWPBOogfdRn!_j$l+*W@)Hz5id=;~Xr?D&|eK;K7aV$z5P
z<$c6wdm$|6KEdsnC4|H!HGJ%LRj+L9t#qUW<S?29u@DTGK7cZI;5(tRUwnH^<VN#N
zPCKR2bZe5MX{Y!s-#^p8lBe~}^;8WwM4k3Jww~G69XR25y=I%}FIK~YZJJH>^st)E
z|0}A4qzT)o>u4JpH1)*sz&qkec!WU`ud(K8dvXsuxc<v<l#8h-(7TqE<g<k#tLGPY
z&jx#oCMmU^aIUsASf9&k1Dq_KxU|GSsG7eG3rA15HAxyFlIR;DIC$@_FWo6*SDy>~
z1AA9`8j-Q@w1rv_UmYKkTPZlzmUX40@X@{_0{dBN@<LXcE6a~w1OB-0hud8rHE7~T
zcvo0!k{rupk%D2lV8vSI@LL><lQUIcMpoiAWubw|1Oo3#C_o%>`XE)#X>I-bX{?k;
zmd0{_q0YRIVo~qGQ0U^x3hmkI;>U?{gWU=v?LedjyT^LyqweR20TrwCj7uBImCEw+
zQwY7eW)=iiTDQjbk1K>i-!~QwP@+&am_{XkK9ZdbwaL~(@Q;9A@u_>I`(%FPVM<06
zqALc*|9~)?&2+=i9U*u(VpoEeVo_rO8irpr=oh5+v5vP_JV!?pe{y#0qe?(n=;TJf
z_j2sf?P`yKXBsPtMf=h8MA1dI%!o(B>CH5Wg1=?iseo<|1_VD!n=g(OmgmVmVY`7e
z&%!^@M^G1O5t3?u;XdOIvLM_x+)GID@)m6^0RS_~J=-+NrO!Xvdnc0T3FRKv@RpKx
z5DbfCGbJf9cL+WctnzTb83F_n*qE3uZf=nL3JS5}WM;F)Qxw@AJq(D0wt``Bk)k_W
zTU*=P=mZ2WcW0VOMk@`L_~_`{`}^c%BJl9=Xf%-C-rlgV!9G5Kz}fxX-8q={RvN9p
zfB$ZP&sO*q-5eo&GbaaTYDzhYvzvYPOHY2#N_yJ@_kK&TQ~0HYd~ab;w!d}g06*9n
zPPLBVcf}Wmdx+czCJHk;`nrQd8!JmIt%dY9W&ZUB397;=?j~n=6=x@P3de~{!xrv=
zuL1kIP0P)YAMpG|H`Ngb1Ll$M>@P=DjKV2xi>3bVvg&Gzms2fIKz|Fn3fosFm(!js
zU8l(GZG{*SZW5vF3v(VW8(5EQ6>+$9yon9n?YdStkENLaqt2>%lk41#>86UVk-Sk!
z%`y9vj5V7wSyJ1WoSdZhBx9R@)ZAP{$=TT<f=|yHDeAtxQZrbZ&`ax0&6$nvfvJgZ
zidu&FL640P9mh;4>bbD5=-~~%me+Hxk7*vpCmR0wux|5L*UtZ3H6P~Z28_gay1nW>
zK3kfx*py}$jE*m0_qnj9teT<wq5<S^R0ChA^8c0lvIH~-sB12XxeJ>+n3W4~QU21i
z;FsF$?j9JgEX*!gonDzLO>#WbaEekvA9+ZIKkHrA-#nuwIA&iE;ik|3nuIRJQ`Czq
zB{D7ED6UEU+#(C1KI{xL{!c<J8m<wJpUix+g1d2eW5L^|*EgWVNJ)~lO;8`>2s>6Y
zftFMxKRpWB76mqFjj;3jWIjIIh|e5<ve5ap13J2#_6*Ye!+vp%V?>3fcrtFK39)#p
z`1ao6k=cQcG#W13RoE26GPk3ZL8WNsiQ|>?RlFklrY%(T6Q`(dG4)N|^*@_`EpInz
znFZPbs_l@D0tsRXN~Dc(-(Jifmo?|1q34+pbSa43OVeU2(Cjp>Dkw{T$UmFQStFWq
z|K>i@*CDMBxhmEzrrTuX%bTh)$qwqeWU)L0D;Ez9!9QD9UAeO>muI))5;CZzb-c$(
z_vSnA>sHY1P}_0r-{?(6MhU`}k54yO9yglj&zzZopL4So9l_nSSv`8Fu((C>!pXNV
zMXJOBdG1hQ($n|vh(d9{tLEr;BU?a++wOk<OD2;lek9zyp&eEk8dG`rc=6*FXTNL6
z&^8aNFd&f>eT*jPtcER)C$9A8+4cfqLEp7l(4Kk?2#)j52!RfxWW9<VI+ER)l7fH@
z!)9%P0N4?^H4DGZpnlnrnVHEiXsT8oNJ>Ci*cy(=MeUNBCJ#=N$%~87q!oM?WtO(p
zTbk}t-dZ&md68+{F73(A8~>WA;b1njPoinI(gKVq6&>P5*VoVh!sF(se9umgxs(eX
zK5ET?rooTBby_x=LiqB)!T{k{NM(dDHUVCbc!#gISAX{nei398&SJeTIxFv;G()}_
z_2m75kIgd$Lc+tPq@|h1emq?!c*HT|BBrLM1_lN;H#ZYa+58<JXVpM07~~5aa`Eo^
zPS=Sy{JD<C%9o94;b;584Wm9eDr6R|H}(URoQX<a+a=ZmC+sLJLHq9F)uj_w`k&+d
z;O&9L1$in(%t0l>J5?)wsyvcSy*Bmp2{V`m(l^AFz9QQ%*#kc{6hDs%eI3;B%xK@>
zbB0s)TZGMuDPK%D((H%5fX7K+miRQ}Xbi*rFXXNI07Y3=zCSvRSADFGNxFKH>SXR&
z+)xg+th>s7BI{(KLOJc_;Y$l*WFXP#zjs0gnQ5QN>=2)Ij-LyBM8c!h*y!P42*S0r
z=<=R9s);5)Lvm|xY;_l3Yw?DX3G4sK@T23CG|!ng=9?5U@(T||<{MSbforPPda>zD
zC;Z8u`{Vys)4X_2zh!T0{$lX|^j4){MF{ylrTc#u+k6@|w1)YAZ){ya+9Pp;&lAAg
zVIY5C9g?>cRwkcc%aOztN-&D}-m7jUdTNID`-c9*thXu`(dXgM5${dR(Ws&!^xyux
zWWNiMJ>D$Uf*z-LL-8{7$>vx_R@%YNp{~C1-6kl2F^bC_8}Re<Gh=6ep*|^)pKZOl
z@$-Z1?CN^Y6oMslecm67+1z}uE5nuGm65QucP@Hg3CYe|Z}a$;JYs2K`JSf{3N6s)
zcKatMXOoZqH3*dn7qQjp%xtx4i_dVyK#M9*1|bf};Bh{mJ6Z4!@&6g&e7elyvRD<F
z&iX3TPXeF!n+$<&eAq<8Y@kl8r?T+<PfGl3ksQ5t^A%(NDW48SJTdZT-m-<0cSQ0+
zNg@G6JXRVuii1wsbRm=OJP``nj0dSX=B$JA^71{q<`~-l76|n8_#L>u6#4A9UR@|s
zjZ7pJB+hlLwQ@Nf{*$;r-x-LKX|XR#u~WMX55*7?5*iWb&ee-Qnr2)V5Z?^JXSK>;
zH&xWv*Y6Mg_WrYAA#u#)(OE_*P7H<Ut;)sLO8_E7xY^ZJ3WruwMh2^xllr^;)o+Od
z*=#zUkI=Rz?{9CO&rT=Pd+9^*L=+UsNjXfG*+%#*rc6I~{|<9md6aEuN-7i_Ve!2^
zZ1;yVy%eYMsyxBZC_LHs{;j#jp;My7EI3G}wk)qfTd&d=n)Zj?yR3Bj<RMS=9%hBN
zQSSBX0oRa-0>k5YJPXF^p*_25wKkKfJfo4MAwwoZ$U@TgCoXT}+?y*y`dD$<Ox`sH
z@?Sj<m!Qt;%49yR_(B0O>GAoa6N80M=prR^$Ez6`FE1WZ2M{DtJ8D7SsAy<V&vC!<
z_e-zAVS(OZ_rM+(O2CGoXznP$*agtWDxm+Mp<Jru+T09g^nh4{)AN07=e^-ve^>~;
zjSf#Xt2H}ETQuzZrRxJW>!q6WgX|BHdUwtnXDf}B#?gfF<kJ6c{;6HP-lrIGB!OSl
z%)z12t}}^nb$#{G&Yr`+yD3O5$>>vIRZdP-j?W-29HhZ0E}}*xIU9vo<pPeeWIkn*
z(Y2j@_(udr0YIRN1_9Cjbg{awj@d{jOSHT~Se&%aHbbL;ii*bYQz0?mh8_bT0En2*
zf@eyQsX|RWfQv{lh_!ogaIjYm@S}21eE;f_rju;0Te)yxXlx!9CY{JMpvQoV2#!p$
zpvKPrGdMFoJF?lluZL4#EEQt^kiC)&UVmtA4*c+;ErukTn1NqkK)}n2Zp1cmL^D7w
zNa0)Ja2{!rK6pxM4eZ}?G)ia)MZ+Kgf1L?iEgdT>0WV%L)E+baPog=~(<fBF87pVN
zss1N8EesIDwaX@h^_eq?2>Ep5wnhHK@rUx!W9R$Za~6+#SXfw1O-+N<8XgV~g_0j7
z4Gj$yRSzx#$EHgb8!n<*eM?o9Jh3$ikD-8ouVM+!AoAO%WWte}SOta1p9aB*_;+hJ
zN19%*w_ZPgt{{KTSX<q;-k?(nGJP5?`H|1}TxPIP@wwG0lgpb|ezua!iP>zv%=!Hd
z{OrMa`k<<0D!@O(<$P|j(QF^TKW03h)?a&?&Svd)bDDbh!ZCSs_VBR&`lL*UX!<lz
zZ@%Vs7hyT|^Y3J?^+wyb%GBDj*=f7w*^<ulMcb{>)HU}z>2yxzGI_Z15QKw?i40a+
zHnxSFDWGeQTJ`DfXr@3cdSEOq5|7JiXMapAiqLYZa4dkn(_*^K^%?oI4v#l7Gmk|d
z96evBdaW@I29(H{Zc~+GFf#aeEmq5x(pb!W$ZBh9{Xq?|SZyL7OGhE#X8+Ff*+ipq
zD&l!N9J^eT4IJM@g*Ja23K1`2xhg#`iGEMAt|*H|lm5<t<UnwqN}0}QT)gE%&u8$&
zSS*)nHhdt=5|8y26`#j5HS5h6>cygQ<gy`UP(CsK9Br~~f4VKj!D6vIRw5n>x3%pR
zi$tg5)M;|DUHluHh{_<6$!lL|Yf;wN*(sWj79v)zvJf5mXf>YU^qEUkSR|9%s|`Iq
zI8Ud;4GZm)D<hrN{OQsyKJ$bAquo}r5#QTlvu0z}-@kLzsvm#1ZYArcHJD7*8I4$X
zz9wNk=mpMqWHEgu<!o_mb!vaUx1P@HKV&ojcBE`=X+dYdR4CK=_G-W0@gePewf%Y5
zy5nfQ*4V{xx28bKm#oopgV%CjI#*?PUe`O5(?GPqLy|n+a=oEk{bXJyjqP3iFNW02
zC+l^@&m1*I>8zP8PBJ0UI1wFBjEw$4h^C8mM<G-Bb5wJ|D<5zTxVX4<bvJ5_CkT1m
z>a<&(6ibwfX3Dji?fz|c`@^EFw>VM{+I|cq<>h^gm*Y+4cD>3G@OL^}{>t58v(=;D
z8-zs2{ct#y4=wN#KfNx_*YiFViErHIsX4O5!Ap{BP$c{K_&6X|D4R|A8O!l?AhJ}o
z66WFYzl)L@k-sh~v>UD0rDbK;tKFTI$+H6s_L{E`F4o)AGcr6#=*GuZTBEWzd|#g-
zHV-d%#?o1+Z<!K41RZ$4Jsv!x5H>Y8Tdvj=#1(!b|0CcJgM=@e!dzln`)dmgt&4$Q
zp)#9q0UuE&odp2_;rZ-P0l;O~>$*y$?!@KuI?59{kjq5>#rXZZ{Z^an5DF0tEKG$?
zD>i^k$Wdc<drT1jI|n8RB8$)Y>1JuBC_0<ncI#BVL^v)z{=3=3zujOIAwPfPu~aBH
zTCKXjOG}SdKexApf?2KBGoB6=Y}(!K&o`n&Lzn7YuY1L!J5m^O6^TIh5!m4Mbh=o)
zeCZGGbHA_ST)RD4IG|T!us&bqa=t)5+<0FxodNhO7rq35n&8RB`_>bPfP#S`5oaig
zx9gHsG7B-pkjd%nb@Nc2o}MmS^nKkcIdLw}^;)yhnqIrcaJ<bmvE%UQ$Q8u>yyY^D
zW(W5-4%d0-4G5oZJ)1K1>*+-5BDu`ve<Sp6k^8G9Ka#h%|64ls{`T6FmnWmypwxo+
z5donygZ=XPt5i*GZG2qZbQTZj7M6z-slC^$wyb{s>=ljtHI|70nAI;2EI(}*Na4_F
zEjD<zw&d`~NPl%B8&ujd?#B(Mq@trc@4M(E;`Vq@)FJ?i>z1nx23BRHUo3781ErGS
zCO`siuv{tR_9D>k>|pf2hF!i(N=o|gzsTKg4il+WL2meEYU+A8nR_sieE}xgoq@<?
zdflk-@c1D^nvvt%r*A(BPnYY%4_uqII!tHCxw!sYDsi@0y#wM`E}OUDO|+5n*4IMj
zu;8ej#2*$c<MwJG0{4Vm8ao=GWagMWo{2R-4@?#-<WtCHDgD8%);LSQxq*0nQrFNR
zUv2)vybkU<<8m@AD9Q#owJVD!agtlG>pJl9k?-{eLjYA`XlRYoxgyM1=6ydMV=!9o
z^~ro^UEn2?3yzqX`(^B80VL8(iAo))U_>yhH-j^I!e*`Ve)B`ouExLJGhC(oG$R8b
zrXt^$)YAGyt_F!0SqKh2r0{b_1|%dTSR6Dw0s{FWS^t4Zh#YW_P!RG5ANSBu4i1i?
zp&|58GRAL1O^Q<XgsRmfJ=J9fXUi;^nFUOrh=s$2-P+%V>&-)mRmwFAR7yV(_AyDn
z3-|+F^Wzl_>FFvtTXy8OSf%xXmo)QpbM+$WtX(yc>CEa?Hu{buU6|f}sG-78Fi4PD
z_jkATb=43)HxUux$#juKY{(29pNKBb_LQ;4W}WP7>l;<o)Br$4fhzI%YOZvHUfYZT
zcm3Bd4NY|jKmrvC1_dT!jhowSap@Cc&=uh-6@TgfF!q%}bp_p)m*5uM-QC?KxVyUs
zcXxLP5L|;3Ja};TV8Pwp-QUUgW~OGUrfP=b$33@>bZ=REty`ye&jI01g#2^w_;_dM
z=J?JAaDp08r3^ZKTXm}TL+{3Knm9SZp%Fm2L;@CaR`EK<ppCS)xSf{6!$St$CQmOf
zFHcWUH*krGiHWV99RWW6@qATQMus$Us76IxY%Bsi{Mh6q5sx$ZkP{6J&C=2mpbjyu
z1@P$lUkl9)3#Qgvd|Sh-s>Em+2u;Yon53h8iEy`FP$*q6>~OcctTmn_6e^(^)vBcB
zql>AO>w^fj7|*<;Bs0BEGem{BBIa4@W(G}l>bK>zxdSzgnVfofWUdjFMM^p1{^G-F
zAev{x&(g}g@pOm?QQfZ8m|mHhIumnjPsyaJxXa(~@^T9c080yt<@vH6>qZbVIxa3M
z;b+iMjltddtmWU~L~~RgywV_A)wxLWkxGw?P{V6y7wKSP7}2U}qf~M9l&AZuS{142
z<GBjWw@8@yop3~)?X4}6B6qCucat>F;_pmFx}20o2VU_z)(h2dPw6b!rs2l6wzi`;
zWMFoov47HD+uLc=l%rDMNtJ0n58l14uW75k#?_?5K&6`Faaprl^+Hr>@VO2n3kh{u
zN0!{`$Ks^k-Q5v<JRLxV^cXR7^YW&;t1hO|9Obac+lUwtDnss}K_q5mSm7hqY3Y5-
z5iona%$O~0YirFB2zbBEU@PwA_z|8rf{uOboqMp61(j)xO-EO;H<kv!x8j*gCC$pj
zghbN+%hun&v%bC_g(yhAOpO)~4=;&)rO^fpAAj6QFM&`%PfyQ&qw`HMNkClripxQU
znwEpXZgRcDR5GE2=J-Ai?}C->qJM~Qc_}P33`|7s>Dfk-sx*~B#}S_@Z7hfw9d4kf
zF9MIt-gfE)?P4R3!|(T0eplW`X9)De+4|YmIUx!`)xrsEaK6;_QoSXUK|69&{D8Ap
za*6y<z}3KXUql6t3886p3BYiZ&o>@!FUtm1^)tcq$k`0L1f8yTx4@xsxvamZ<Omqg
z6m7&4`dwX{ix?Zrxw4BOmn!6ahKDB$RlzaeGVpy3>F<x_azM3TEz@nT?(Y?4OtyQv
zTlnpE(kZRTL`@HHB9_6&t7NK}G<sMh_!sk?!FRuBQ1>Pncs#zq@y;Gaq6|QbPLH;f
z$L26VKq55Tuj{2}o$T-LtCs%pF$H5DoS&c1;dSNq-xhmuKQrj?_q&=Y&abVF?wy?*
zpy1%ROLIGE=NDLby-iLlwJeTLiPfx8QB{S9hx?Pqi-C@Ph=u(ap%I&tvv!`tXBBEa
z_Y(sdUr&MDx?$NuKFgrXiHwAVgqisgs00AF4T%}^$uj5pvo^s{A`<fNh3~KHugWr`
z9sOcm0G|-tKRIc$I9py@Y1Y-&wtKr<IA8m%zML;d`C@)!K}3{iIhlKO`<#CGwMxUr
z2s=^Aj2RnsbXu!b?izir)$gTcEUgh&{;r3zcRed20$TJC@Q-&#C%{EE0zTg23Ha1#
z)ipFUw6xOmf50f>a-jSGwO3SBsL=xQHajPW;EKyWIF%`U?{wG9#?<9@v2FzxmNvzD
zbax~!iz^^2_kFH;gLl622|zI{Cc`GHh0om8@m(LqvT65c8#N0@sQ|Q{Y&xDDt49~O
z>YPpJHVYE5l_=X*e%qd3nM49RU2HtL%i=m)ZmuChNxa?cS@(OXtgOQ0w8h3n-QGNe
z0dZnt0!8fIdlWrPPNO{O;^4%F85>XwnOSKIKm2?YJsx=7PBbuL6H`*=ikwWh#8Xr<
zG?k`m91L|x>l*43Wy$G>?vCb8);oN<-rir{ppp1j*RaO3O6RQioV^^SBJ&YP_pUdm
zrY<Zd|9HM={7}l~@d4^=6KmM^ZWNk*b+wgZUWtIu{aul?+ZWMa8y$QBTcRO{hjv}>
z%O!3$A~u&5x@n-rIvdT`vlRk9*T~pN<e&YakkE$hu1AY?rktFdKa7p{uBb)|USF3P
z841tNTU%S>GTBG`AFBP$%qp7fF4kM?EjKzvi=7WQd)z;NZe3dX(bLm(e-Fso9DOe0
zZUC8=MywWc1(*yvPgg25Co(zuPUb2W{a+`t;M3^KcP;|<mO1LQ@Rhp+EtXziUkBy0
zK24hDPL54F%rsbGxD}2}b$4f7T>**%W7<{C)m6j7Le8~8j1(+*_|JGH5z5x#_V(G{
z-O6;~kYeub)z#5@RhAZMd8CBDeRWq}UR7M2LTQZs)TX|K#8@f=UVpz{hqL)dPe>#&
z6cYYdbJOIzbA8vhXHk?Q0DF(aB3|aI=#phT&erwI)b3BG3!Ca)gpG^_?r)r(gOBG0
zJl=f=SDH5za!-LY4inuvKmKhsmfH4k?sopSJT+O>RSx0OcfQR-K8u~^!5jDhsFL%)
zKfdgF3yMY(1DtDic9x8cEUd#j)jTFT8X!PFl&Is0gmQCo1Z)>;r>2xbdh(~gijgV{
z3kPmSAzOElgaXm-4luXH#l^tDz@mR~u<GmUC*<slBHihGwXLs_T7Ho)%2N5;EsN8^
zK%x-sul^2SiUwsbHnPt9+ryL0UiMOb%mwxx*UpKkyMEyx+wbH2NTkz1urTVk)Ozp9
zM9FD*O^!j1z^P~ajEZJq@D^7to}6{P$}OP5m5BMHB`2fQG^Wl`Q1)-lBr-a?$)jUo
zzE5r@ui5T!3>H)BG)I2)wrYubGVNR$WS=f|9yvl<VAByg_66Pw{ev9GnWhf^33v>h
zh`D+mZRb~9Y~49_94E?=?QI6zuwDbvm%%Xd28Z9c6%HGbAx_g8>ZTPY0b#8bqlS^l
z1!X`QnZ&BorYOg0Qlp23g|TMHQQwwmRJidH3~JG1#)uUZ6p*SWGN#Cc4Y~5_i-`36
z$>GZy8f-e5+9HDvnQ;ZUU=$LeRR8wR6kp?v)ECF%k=n61ba_>D@s5W(nHa4oF|5h#
zC+q87@RxgOditNI?!}O~Kc{ahdN(}v;|O$37&P^e+2xZ5Y0p8z%8|rky`pC6$Kk_&
z^Q-3N)dstaUhDPRl?JwDKtv5D>$+4G&)CP-KLv4Wgo+fjTkUZxOft4LtX_!HGdoo9
z1&apfp%H>Nxs0`&YHO#kb%va>Yv+np%46HR%jRqvb+&MJ<abP^BBLIM^t?r@dY$F2
zz_HNA{5h@vzF^5?TyTD!BEFj@gSR>PxNq@G)o1o#WYv$SKiNNien}+z7)67&cw}o^
zhZub9et*-fHh7CH-uP?HapOVoOf7ql3d`@0kU*5S02}t0am>ZWTmsQ?sQ9;{2Qa0k
z3D`T<r@`;c=#*<>Fj3=ot?xpKei{-`g$rDC2Plt|-A2rwEo~oYW=v^)8Emy~Hav*<
z-uDoRhastV0l#iP7|c{@axF4HKEUa9>n$b(-=6(mQ@!3Vc=oIm>W!h;UTNk(90bGc
z6n>fm2On&z<6r(q!=wMB`_cdX;PoMpM{fw>qveogEVm1r7XO+?_TF3I@lp8Wy;#zT
zneh*U!)L*_1JK8g*PRfmmnQvv|BY{=O4PW^Yg&*PJtsDT*b;?W>Zv;I*S|0&@)ehi
z;HP;MFESMhwV;wS5)fP<_@j@)wi2i$BoOSquioXB$RQL8*_y_WcnJ;Siizs|U)B11
z9GFi$tGY-(RBUO1IxP1XfHB2hHEpfTVW#*^O6+>Jw7V1haoM~nTmU4T##kirg-~Ez
z+AJWOUOHVcWwAN08=D+e7{-;Cnl^Yxvb9zUL5>BiUG9rpNO_8o^B2j>%QOjIGSDXl
zLdl8+<b*t85KLvvP{K}DV}C&I(G>DZsIyC-Zor-(jMt}VI1=vIXI})Nr!1snCJ|(v
zoO3{HV%#v2gf{3fh)R(rZvMi}P%?=kA4y2Bf+Z=M{(9@(AxDW8B}PQQ4;v>@56mc4
zRAJW{A&)#U<Me|UM^d@Wn}X<uI8juXz%w&^-hsG8;UM4xF^5MMfnZ#g9+VE}oK!CA
z&pM!LJ=Oa=54H-^%X^cmJaVUd1wIWc2}BNi|CxCAh(7hTgcu!~{AWwTsQ((Z=n<-P
z{OIP>*yPuK>d~1`+1bpKeHrzKmkxgwE0(5BS-w$Z!WdrjAatkb5u=@fGB!b%n<OTq
ze%~3)ea%-(@IjyAL(*!LBnFAJPUy#+@grE~k6d9$V(UbIOr6}JMwxAN`k_V@Y1SA3
zg7p?dS9hh(bm;zktxY5Z3eZOaaFBzjQK970aS~+Tn)MhLj$9G?(iw39S~`)%b+Ozy
zw!Hk@yx~8qp*r0E{VCbZ*cedqL5t))F*xti1|aiB{YKp9+wgL>%R%}6zelT`enlG4
zJAwy+(D_^1w7>oE;NTL~g7L&cnuVZB9^V^n^5;m)(H9T{YrVDdQ~O?E8sVyRMi7Zc
z<|-sDEqV*lF+t4Wcmb5YeopexzE5z|jch_bl$uO>QrQrSNn4{FqU603ncLtIkrs8_
z)Cl0+$q|lwxFV`8Ui5;V>0f8CBmVXQWfs=*4=SWM@@7I7`+zXWXz^E~qsu^b_2Vgz
ziLj7C31}0HSuRiH>3OrBN(+k#6nIl=yb57`%6*)CE@zB_{}lJwfK`1KJ-d-F(5Cd_
zzBmj1(H{PF8M}hR@qiKTb1!1S)e+m_9vwP<s44C?Y9eG!Zcp7#XdL4C6qv3S7&C}e
zsbcdMmXr>U8m^$g(Fo?<g*Qx$R$fl-yA(MX7#LKD2tB4@i(}8w(9rsNr^7}kC|{#u
zOxo?od9>q|K@bya6d}K7{_Ih2Ums6A8O-*02AiOupn`%z39NB+bhHGZ16&WMI{jWq
zLj{!*gkciNrQa{q5#Kk6eL$O9!lZ|@&>s!)kKU|acevIIm_9FH$lqMC!sChUsn91I
z@|X;MN1pseq@wDbLg}x1+<s}yz8uVJZ6aU>*)E2n!yPVXKnn-To_awsBcXMYGceT2
zK~3iU*d*rvO8xYPdOikvHzqxvO7Xt>L;^uV^0+S0V1|N)K3Gcr<FkI5<s^zIGH&$6
zx;XrS6Up6UDb3;R`rkFNAG?IUFBn__gh=Re@8RUqwx);)dHK~jUK!?fpKE4AAdza;
z0~-;w7DaF7Yi+1J&gp;EhtO$Grx_;S-=7BdJYI|6?kyCx;hm`94ayV0`PRum9^sT}
zFyLcGGwG4D<JL9}`nWq*t(cahZ^()<tSFT$qJR(xhd&y^lc|OELHgd`uy$aA9Bpll
z<`VR}g7|+Pe&vwA(=4YDQ9hW=Yp$y+*91Ii^lfaf&HW6Q-?O&4xw*%PnreK&ghe_D
z$P{825@R~)B+^7FsdcsTU96Y^#XLa)|JTO?@fd4>IX_<Q08pct!8$N75JoPYSrX=~
zAj%W%Yz--b3|v&p5xdX}DV-#0FZ~Lw-@A9K5?l9gg;=mLHi=<zhU*8}g*C-IQ}-iF
zb`NMw^PAP=R1p(*(kIa3ueg>R;qjaafq-5@p-~I-LWhzhkmniiwFZBk1;qn<*jiJ@
z+|iVWi<I!?J|w?a?6Ksvdwj|tIy3VhTVDVdRHm38y@|_4#UeDk`kdb*rV2~M8cnNg
zPvAA!S{?a;l}r#5mgIBLwNfE1x!XMw`I9ST3yZ!iEtMG(y-)ki|EU(ck-Xd!JGa8M
zUP}E8Q}X&&W{{UelQ4C#<CWjDf`#tv`~JyTsn7)rCIkIt4vY{S)IKIE^xj>gHE3>@
zf5J7@B!4=(rzZmT8(9)$B&?(c(IGVOa8aAXd);+T{F#UZWOV*%d({g_Q9+6*0q4NE
zldH-lvE?09my-TH=ZACsL@C$y8B{g%G(q`U)F?5)pv5ZD1r0i9RC&HLMbgOtZtG}i
z2}^4<rO;_MS<PCEr?VU#9huZ=(WVIcK00;>f}Jfl>i#l=oxH(_6Ub3mXmK))-!bU$
zrbr$+U+?&*8!s+u=ByVgwP%6kN+gpM^tvu8=*Nr_12QgCz^AFPkwbnK`22j{c2QYX
z#WDymy?=7NI|y7=Mdk2V)=vY}Lyb%<B$P)!0#MZPT!ELXogwdz+yd(Qj!WecLJ$Z)
zXDitre@yfZMvxpG9`j;G{57W3_D#z78sWDK)=@*ZGYEu<i4DRGP^8xqGqXU2eyATx
z_yux&MZY@cz@6%H9<0>(a-;R0Ro>o)L@7n)RhZK@QWEzBYk0kNca@nUaff=g{Dspx
zl1gE}?_{U3Lgs>qPsH12yBnmZ2BFV)<1O&p2MH`t0vr)<6KCV<T_l}c79A1OVto5z
z)hy!kc1{jU!qzR$-wLLsI&iD0z-DOsMP!9sQ3uwoT^jUR5dRvpDF}qk`t75LYoU}0
z2^8|YL)h^s_$EV9uMyKLdYSE|r-W_L9=O9T)e-`_+^;foBwlYwyn*k}Y1^sFYH6^f
zriprVq0=C)bvgJ0BukEf4<{R&>JKH`m8L55u~a6*PIMR*#<YvIwuh&igOi0Chxy8-
z3e6gF)Dghs{~BVL^ha*^zf_f#9WEFKs8gfwHCtm3PE1ru#NpD=(BQ`HZ}mkO7#Q5&
z-)n1Yr>3SxAQ9QGG@boauQ-H@mA<4YDJ_LB33X&h8w+^a!va0NJ#0WD;x?EJL<a{4
z3+-0_`@yu<xKAP$n+153|J(Dw<>Y{rM2*^Aap=lnF&&ITqf${(8E5?{q<I=}k?vh&
zd0fbuYDQ}EfG`51mTCtllSoEK3<_$|MzeKD;Q0)i%D(VKLgK#0<MqR|+lWGd+CCY1
z-7Y?ztAGJ5H|+<3ml@4p@l(^&J+V)QtQI`}wwPdjFsHDY>*@Kc4EqFG>&B<71~EU+
z{O-~z!p=DRSydu!>5*;gIDDa!&H|rl)@VCz_XnAn0;l0v91`M|Vh*J$A*#d7bg6(>
zIRz$XN-+>x<Dy3#rnC_vv~>Hr_Z(v_Qs!{NYFD87O7$fzHaRCq$oL9D;}|XaPN$u4
zgBnY033Aj9-zOD%%$3E(VKY`Tut>3jEG~!p)1}$9wY8xk%Y|xvgg!G13rZ>~A>YT#
z=|V|yadE%}DZE>E-hLrah^T02vokY*&Rc1;0hBrh9Hi*K)>8OG=4NK?3ww<G!n3!<
zvT444eqp2L<>lq!GGiASh@}cSth}FLf|bhEyu7?__9qIdt@lP#00v!P^$bXH4Gj(a
zp^TBooo@odEE6!YddMk44&-R(1x0OgM%0}F2}<SP;t-*_eI61$E($IzuGe$9uLOOU
z(|FzS<A`Dy^@KaTuTwS5n-9lYk?CId&cb#ae)L12s~~;+?r{C#>9ZBO;&{Oc7f0>V
zRRT^4lg<|5;@+dV6RF<@E0*qgM@P+7zmF_KVY|}rb`%8GT^(*U!iJ6;4*RL|HIo<y
z27U)jiA7|Kb{Yy)2a}XMox=UMjK-iV7X<R*LkRrz>2gB%@Y4V99a<%AAVmxesJ3w+
z!2So^dBaFD6&5=B;?k1a(aZoloeKv<6ie!enR9D<ety0}4lht)n9}|%l^t+d|2+hN
z=iy>QlQspQW-`UjgRwaA@$nos^J*1y*ru~4r|j~0YY^npaCqVpq+&2ji;FPfZ-DU_
z7#OaIMiO`(H-(E;Xp}lND&nG|juvV*p6^bW^na6M#z23@KfJhLN|AZ`c+al*VEo0z
z87?o;n2H7!IDbY%Cp$dx#p`KcMyovd4llCf1=fR04p~Vp^!aY9dV|=YOXTgvITYr7
zSc5;8BjiLV(t19+p*f^Eqd3cgt<=R2T4_QztxL$^^Me%;Epw=|YvA{xvQ#ue{xV!+
zh>BE~HKF2Xq>}8;0dlZbuWvaa777R1*(@OT$o@`2ZVJdJ&z<x`q&X6C((Eftw<CqQ
zvLIDeWnlvTd?6%|kpE=3<TN;xYGa8>6(%s0FVHvgnK$CCWwCZdL_~A7TU+4J%O1yS
zaot#<1^}rtHYOR=D)Y?B%VR>XW}v19fkJwaF)-Y250#0C@=6u+D9OpE*zGJWv9PfZ
zx3*9S2>x{r;Br|1TVvRj1bfh;(`Y?csqHcpPmq|Hh>3{_6dlD}ejFkH_Po4}a74V=
zIX<h*L2M!+e|}QZU}6|q*|CKh!#tsY^?`wZZ#1HdvmneCNuz}-b@{(>$Md-!elw`~
z_%idaS;t_<msInPjt(SzZpXLhJB=zGNGK?8FRu|Z))X1@`5PhDCD|e)8*mO=S@BiN
zLa!9KdjjHJ=f&E1{Tno8tx(XErKuM@&ua@D20C$OxI^c5XLfguf$ZOe&5$p$mIDjW
zE6b@0zEaHY9&{<G_wGgx(4gTJJc+nX`vJ73CeKZf|FfJ5b>+?;WTB)Jmjf#B-4w`w
zS+2)cSU_k%QtY(gV&vBK>qdMYUj$M@clQ@Z<onyoT1xE0d9;l<%d}VF)s6@RsLQ(n
zy0n{)=j-6Ti+#lDY3@B1XD2Yl4HL2g4TjUhNHApap!yLvJImAENU(2dRALgBK|zmc
z@?w41?=Qve$?zcXABm1{sC+hz8A+d5ap<#$`~>5%V!^mH^(y9xbbq<Ky8|d6%#9Ik
zj0(YG)D8N<d2_bX3>dm*`s=?gZUqJZx*3LrhjV_N3M7W%;%Wv|P!&-9ueJvW2?@yn
zLR2AjG|4PyYkPWswvxqZ_jC4$o}M1aDK@`n*H9$@dR|{&A((!v(GqakuSR3g-Fm<M
zG9UW{4h}d<z;qA+8akq^tgOAAzftGkFIR|ooCtWFu?1z-`fa1M42~Kc?6!+jYW17k
z)w<300^YX()5HcC$h(rbHQRTrfV~)FNGMLbc?9f|q(JT7ez5~t{!?4n2Vrv#$WNdY
z#NJ}L+=yS(<&+yg&lJFdGiE*M=(JwYe!GS}y1}mmAiKL1YhhYUY*tlnmby`&v(}lD
z@qMLcBoZ^jtyWd<wrxeuOiItb#X9V#alOG@?uc0Ij60j@V2?-k1Yv^Io#ZtM&U9Jy
zB5D@j9_%)izspo%7Th90g&<dxB}!?fVl*{^0uQ`QFJo(is60>ayak4w(8Xc#JbMN8
zIDWIp&jO6>l9)IYU}j2u@{8kK{=JL&O8e^MsIau4v0pGGISP`<5c0Ew9xg5}9vACt
zZI+XV;fV4fE;u1uOD79NsKr$LrkEE2y=cB4?{9$TvVNOZXk0r%?q%2T`ZkifU0wKu
zm!ImQ<1h9h;>*P2e)$BF?ioMQd#J_+-CyiOVP7OO`_Vo~BiY_gYEri5^S%_bp71`A
z#A3^T>c-l6Qpt>%$?v1BSrU4!`n48dcyAsW>jodU&YgPz8_b-tGU&DEwJx<d$c?j;
zd=Zz8!X0x-@}r@tPJ6bPY!yqV4;zne65i*u<N_}BBcR210^*~2@%{tG5g8+dDc8LI
z7s_D1QeYc&$yX2*Dc&Z$<zgj$C=2!O=6Mj!bbxPY34NY5a-744kvQq)!_ei%4xvO@
zS*_#EeARC_Xxex2?i+r~-dH)D&Wzj-l`>b)@`N^FA*jsF-RK;>x~S+N5ZLABZg7sC
zW1YZd&(MNk_Kud8Xa}{P1jdI0D2d<entam9Ipfr@<DGwXm39yw8AiI_<VHEWOKqg4
zY}HTh*TKJT*NLUysEJf=cSq2;EG_G_^zH^X^A5N#4YiI!&4u1>RUbEqW1Z_@u~pIc
z&X27r|8%L@Qs?q-dFH;y4CfL@zP|eIxSvQuXO{eH8VOJ#`S)%3I<e~y>YJetcLx2N
z^%q0AdkmUAvXy)5MqWNXUD8AtM*Q3Z?NkhRzkU;zKIRLKT_8rLdDK1wbS?xMi5(YF
z-R{&|yDbDFnp)ogCIux6J52>$1S}|U2Xqq%qQ=!CWTv{T-)@dQ9shg6=o`EfbN~W{
z{_2vr3o;KR?k+RG;!iIe9luoUlce<7%D!J|b}(%B?D++7^eRBaAy>V<KHUH?t$r~*
zfGy;6Kfbosp>j@)Pew+!W1xP?BQy3j$&h@{=34wab&>n<N&5m$7!F)rFlia7exe+?
z&EXm{GgRnx$`X#a!<+T9O3`rlajpgbt>b0t3~RS<C#~Y-u~xj_>p3j38ABsn838rM
zNRT;*Bu6AC^ZoDGA63d!@ci9{2R3*%Ffef?`zHJI_;sEq2O=}_dVV^rkvHq76`jS8
ziVDii9=ZFJ!!0aEJ#N=S<jI?0vYyFF2SDBcMIE2jY*<m~O$`8|-d@o-i7&{Za+Jw3
z#rQ+zYP2CeM#jb>NxKbJvww2<hM47yjei)_lv*wK_68SF8&kE$=2J=&N77117TrXz
zGYEFD(+FrYrh<La)kY*J<hTrPXr8>DdrDkK!8C~p7mNdQ5mtd$U|jdKnw`Fiz<nOt
z-#wUrqjWv$7EfOB0~gM13D}-q`F{Hv`?p<9(nd0Oh>&Bo)9xlNrx^TO|9cj+r2Uhv
zS6*>pW&$LFfQH}k#W7Wh7*xFaakT&GQ{Pp;s*vH5(gvSO;leVVwePgAUcL=>t;Hx;
z-v`{1Z1K!og=PYg5Fo?uRm#~pI5;RM_LduM03{G`y*mP^J?!wKjjn)~`?D08y&qp9
z;tBZnkB@mhFO3uxCjsU4dcWc@nJ0AdpRRtH{9evqzkc=he(nu}H|+FXYH`{Du1S4{
zr?LK6?`Q+a>@VYxuoQKQdlIlAqHN#C`{^s#Auy8hn}g&@Prj$trB;X5CW<Zd-k*XM
zu`+^_hYp?XOFZqfSCW=^&qLSg^&SmfneJ6fW1-&mcYzT3fh6gT;0usE&@51I&Cs3t
z&K5^WgtB0p!*3hUT&F&-Tjk0VL!S~DD(N5Mc!ZPLLHHdmp7YZ@iRUQE%K<!;?g*e)
zSNFTu<QV_s`ehw^Xnq@m0E<V-O|qAD&s-08_xPBYn1lpHS=suA20%2~Rp~SWOvA#`
za-q(22q<h%kB`g<$tfu*>FL}i{V;V}?Ir_ospelqMFEOuX=Ag}=5g`<_QJ=@3#i^|
zgAN@Sln%hw>m5GDl#+93sHmR-GB$hkbF}63t2&!xjtjGYfW3c-Muj!X-@%E&;zibj
zM-@#RX{z@29g~w~Aqyk#bvlh2Q_rS4kHTsa{nT771P}ym-8c@WXTH_dDdR?tEDsVW
zqt!tx9&g4IJ8GC~i78MF`^F3M0uHX;u)`<y`+N87dh$-IiBE3Cq>g{C`uCjFHw2iQ
z)D)a|&0&MW>G5oy**|~mN0KPMM10O+H6M+`<I2v?2ExM9+<Y!yBm`hbJbZj7ch9&S
z*6a@J**h(lmzUqaqlX)}x3}vwd<94{3Lf6dFLPO4-4%eqt#<nH@$+XB!vq9;+#F2G
zlB1G^WW20-WcG^k@wJT-tkJKq=HIm|)O%2!TDATDlBIseHTX9ED_mx1Q+Ru8{=KR|
zpg@Y)zC#XKb(^%qS!w5oIPYHh%Mk3({tzwvgmG#!4TzFJas@%&6T?}qRSy2YJi9;$
zfaOc+{`I#jy|>|Wdo3TkK#FHLdkRr8bY6`!1qq9ej2{e+UkVlP-tZe%XjB1$z%(`{
zI$9x@pU3h~c8AY{H9Kxk1yiUacsDS2A^~smw6QRLc?gliJMWMl;(j-qMxD$O6j4Y>
zNPxZmnVgh_X|$S^;I^amjY5r~DQ}QjAv6VbiYu*Pir9f|%Fo|`=|Zj0o$@Z682o{S
z1zjm_Z|oNzSh>^)wyrOCrC1_r#+!l}X++?-Buri)FMftC^$Od~V1MJhK$K4geY>W8
zI<B`lVXSU_-HmR}!2)TGRn{o9N+h#eWNfWS*mwSxrcK0>#GYc`=K(J*ra=Lr`#fsT
z>xFb9eArttVa5OoJPpWfcq_s%azqeuHX#aXFU&!MVxC}!QBN@7Y(NT$4?j@ymn@vP
zI6KobFocm$0bILKB97PfaLQxD&(hLTGgCFF;QnG`qfip5SVg-vNpUu+25liv*L2DX
z)GcF8Q$o=$Y*eBqq1-%cKgzIc?`{uM2vg&|V7NA_u@6&vU+8OM(r#iwm}5tx0fG{n
z4J2lJxC<3PdzrgPPX6H3Pe$2C3HQR^)T2_pVPt!Vi$n+O1N9LHzc)=RKwl90X50m1
z%7O`3F+RF)aIJqfaKnEC^&IWa=4iT)(t1M|wQ?rnyid#!n%bJ0*89IbkB`eGN|~9O
zve_-OZy`$oI=WOYqxa_ZATMCOLbC=Sjq$h~(FJAQ-NLPU_Pe-sb#;L6OQ@~4dc%Op
z1KFA*=;sZ<d`gNsPMSfKU6=hFEj(V9jGj04DTX@|n`$P#&EO4w(6As%2QRb-#Fkkk
zY;lg9AkGmcOW_SYXjpUq{-roTVp_Lc>JzB@YA4gbY3~^`iFgmyYk@=mbeE&DXkPyd
zZ@~QP4VyHTXRhJ;i)2!fXD(io*J9iO7eg^cYmn#s+B)4TAcH3inTqw7oz2Oll_q?%
z{MWpHX;p#(cezF+72gd0emOFV>26PR2=7AqDd_n^6<ET?%IfUw9I96x+ycnkPfPzg
zw^8&l_jVEtYDr;{Wao1VEUT-j_20CM{y>g*|EWgXVZekMW&O9z>1KbTzrSBwwRDu8
zUaKS57&}T##hja&6gyt|<U9VpSdkQCBRTS?+yl?}A%6L25Hqov(Jh3C3OOV;IH@ZX
zgS-m<WE3?E2rAeJ2b{PYyTX+gK}#&!j8*m%OzN~#I@YYomN<9?73eA*OSzb)f;)HC
z1uB(;nO_#ILC#tvk=>CVWa1TWj04NSB3YER#RQQV-{wei)dL<S4L6j~<p9LAIcvtz
z(O1*R_|0!@;oE;JwN)QgnZaV?V9vdF2y}IIw-f>Hg?kplB0h^QuW5;GnoCJz(<)!y
zn7{)11|eOL^wS?Z2I4ovdvaPNc_52)Du4G4x-@t%XjsD7=9V6Gi7u@SgJX!UOiFS+
zgieu^Z$=JDnykv6y&2e#E~0F*Y`d7XwNbe{>k5>;quEk<wrW2;Vrf=BzLoFSLjA{{
zA8*c+-)loyp}@mO72nltOJA{^+^E9G*&V_ISeBB_lnvJ7bNFs<uHSD$;pVtMQ%5Jk
z4BY<P80NLlY|;s?)%W#qI)GpzO(e5me5h&MC_KPmgbGGfrDS=`5Y}RC5y9fIruJ;&
z?^oao*+6EbAe?a{N*}g=o6P*;3i<yy_}DW`KvvVGzv_Yyjr|?K@g4q4iB<j)>js5%
zzLlp#1M6MF{vvVYLo9~50@$@-*Yd|B3dZ&qjc}P_@2k_LE>lRQzge0!*T58XMkT4=
z2jjL2dtg`)T<&*A#;_Qv;o)PR$mFRgD06w;>Cdiqj=3pC%M%FSOv~@2Sn1f<=-BFM
z5wue~{BHKUqINz4z@vfNX6O_@7gltf&SGPAF%2_r5lK^$lgm9HR|o~1Pc+bv6BSh>
zZF7{Ik+D1U1fx+Y_)cL7)xM1y@OvIAv9yvF%^o$`uH0K~bPg$GGb?mw)LU9kWU#sJ
z4j-3<7Ca;37A>57&?t8SF&>x2r5R5m3Kg=oxz!gCaeRBwQ1ww4l1?N=Su#p5n%wz(
z{AaB#;Ctujcv)E3K-kSeoBR1{h2<nk2-Mx_bfM|Xy@O#FX3T&R>C$Ly<E7<Yq2jFN
zWUhegCGnK&Q8I=h{R0|k>K4En4SGX^{ejWtF4v=(+_g43ugdMb5~AX==8Oy>dVL-J
z7mN#d59WWbi93-f=Qh{YE_S+D0vZh-Fd>m?y0oERqtC@U(w@CKqAdqOjqB}ChpJTq
zPsK!&482aHtzOph)K~{~p`(&VO^%}!PW3srFloczo=$*h&)9n>si>Q&d+WZc*&h(%
zdN1L!dIo4n7N@=Mh4shTaN=yK;>XsU0pilht#^P>moysX?aA!Hew8j-*P{u5mMbeu
zb@X&<_2UyG(_b5fl>=FnzV{dnPmCzjq_kLrgX1AIZ|^V}wthlT)lwp^rHkMBx0K`N
z#w#?C*fW0i=Ugy!kU4ga20X+MRodB^8Gj*n1T9V`uI8WHUhM_}2Y+%}TDXmtf?s`2
z^Xd%p(z3=beXmCU*Fp$uNEfM6wNB6X*XE4?=<t!Ti7K&K38~V#Ys!s1miZG`-W*0M
zKHUnn)PPPsC%)W|?o~6W4nZy|$--&$LYXA~LCB}4CoivTln=NT7N`*AHR?`En9upd
zLPEef46#%orSDUnGUe=_A%|{&Q<aih8&pOLHOie`oNuigr6W93jT?0Aj#$eOSaJ{M
zXw{8Hz{Z$?6TN?Y0~0@D&)l|G`5wqN<P-)82|Na2P&kQy67SX<%x?B1nir;KmVn3m
z_Fr?})>fS=jjx6k)98~9bGZ0JPO&}tYP7OxaN;Zo$-qqM>HEoHA$pwf$Czo0S%sJq
z_PC9wm<ORc3@WB~anqui<-NQhfq5tu!jj|?N5jDZ1N<&7K6quR{m+_Zwa93pb$)R=
zIsdG71YxTkNBPtf!e%-7Y4YG;PhCL<8@x}i!}|{KY`cM>8mTGsATO9Mb@_r+(r7`!
zYIgRva}tK7R|jmRR^9gYKn(T{!0O7%sP#T^RqMeb!s2{99rOeRq1+t{w0IzyX6NOs
zm1@@1PE8Ga-~Gwv4)P+zL)d$F;?>X6sM6Ed%eI+|j*dNDDuf=y#zRo;eCH*nrsigL
zyo<)b-dP<Vzdu_hSZzi!eLbSevt4P&G3B@TOU<OHXhT;q$ikwWnE14`l)f_>5NyuZ
z<ZuCqkKIFT{VxABg&gKV!&tn9n`Fh`?&qg_M?AK}$nwS{gWPWeF`XSg5fISLU)TA!
z_T^)*`mc661O%$+8Sn=B#X=)2i%ZikJ`I9DKL~l9raR#?X7k)E9Zp9)Ts+)gU*F#L
zBbYv4?na?4RB4mBBI6;X@8p)2a9XXl+$szNU;{Ts!sTYJwO?B-k$2c=A@MzYp^yy@
z2@XD<f3qJ%_)#9sbpN`WT;b%@d(+{4-|qj!S~yLw-BN3Qv!959a<<&S6Y$JF$W6so
zZ<#=7{Nu+R85vWqKn%;E_uFf$%gKDzN{QPEpdV`VI@?hZSPa+$I<sPA&BVm6YOpst
zoyb^8|K%ezG~^sSlHzZl<{7MjwO_^VXUo&d%4@&f5fKsXHmdbCBnHPC8Z;Pm!z026
zIjxd>F9-)8Z&*yBZci5KzCbe}B}|h^UPFB`5fxqdlM_a`7MFl!QE&2+_9qVs0j9R0
z76uXa>gI0kdW;Eshp*Yb5wIpXcZ+(3#>2&GxmiB~RP5D{x0e$rhz6@UT5jsEJCj1D
zu^i&!eG#7#5n*BB5d~T-kp>?h`Xc&zdw;thp(>UBNkgMLj*ey?bTDYYyuUtPDvapr
z`uOh9*~6dU<=?Z~+RM(6&IVmiU$anS*wzF<D`1-}E}JHw7x&mYgW_k~zh&PxH>Wl?
z^}F7qSp<Eq&HB>Qfq6hdL9oY0d1WRAvz)KhmqxU;b>!&xK_Tj}+YBDLVx;~4olo2(
zjdq~ZxT>d5*4r0>fJ-j-R!j0_xxspG>-_z0ccfAwg5~{fI5E=uPBb|9`QfNgvz&2g
zph~NC=KD<4bu^fv3Zuj(G6FaV<_92$u1tq0DJk48=Iy4FC_v0E^OcnHnX9cn4{3(}
z+5m!!C@6@NeIt%cE>%=~z8(_^f!=6wv$^Q>1Jzob>2&ls0=f_$iz%1i?buo`+ioH=
znMz@`#p`BMB*fO%7776u0-@ew?RUq^Jx63ztLxoyoNjYvRV8gX#@LNy0znq1pLflA
zN6kjN*W)k>m~M`O$Khtr?(QxYlR-AG3lvCA=WKCOs4Fd<+j@66Og0tN{R@LGo{$d{
z1;^{@c<wP2!UsAc+MIK_(aPmwz2mjAGP&!cdVH)c=i5}i{~M!#cafl<wT;b~e=J-o
zfUUp%--@7-C}W9)>;@4)i_JC*eGy0w>%TDqUha3O6z_@nwaVQlun{EW`@5Oh<*8OX
z+KhJw8SuE)qZ169E#j0^jh1hZ>{c3DT^`PtIc)ZUFatq<Civ}kG9O2$`T1;Pvd(tz
zQ=V~W1}g;%%}9d<&*Y86MkfK6h1~Yri-6B9a;k_pH8u6&RP|a^q2z3?fNYCX-{{Qs
z^4*Ec{+}FnCzIZ_wq#2AXZL5<9>cPQlZ5y8m$#y#2qYqdc28w;R2-S`?+0FAiu=Zx
z<FeSLWfVTcBMCWP8jbD@g+L)eg=f6pEfj_${j*uEVHZ=^`)}H{WMk}bV}I?g_w81f
zU|I9^*C)aCb&rd+m1c*HW4Dv*`g*YZvRcQrOpcL<3qT&#eC%O?HhHS0%JBi5Odu5a
z)m#rA+T^hEZ_AezSXeIm_4cfE&+SL2Vig|C_t(}9KaZRFsxL1O$q-<mm{fWvXXoE(
z>7Kj8i2yONZ1)!bwhKJVQZ6U+d-iIJai2Mz2B^Eb!zVzmu0a3gUb9-C&*$BjqIlcO
zfHGM>G6ql3q`&2AX9o?H({7zU(mRP*Ay+WR@#Q`Y9*dCQ^OB##ZKp)O&Eule<D)Yn
zVX}Zi76_|RJ_$iHE9=JP;WBEbfB?|fzeUo%zWkuo-+nJ6v!z&!df%kTkyKTFRv6jQ
z!%zGYo<$-O`0aeA(<SKlHM7(2AYP#cI?$p@Cx_R?;%cVYi-)JA+D!HQCg{wjae3YE
z86+JoJ=3f}5T}C(!cDQhDUlybV^A%hE9OP&Q(F)mayy>diec(%&q-gbRxJg%h>-ua
z+2S{n?q5pkb8AB9X1^L5@Yx-SFMZR_*AAHUU_g_G?JdYyTqcXm!Nk@2UF$#1$B?Wd
zjMI7DjsYmZVe{u7`t|Pb4^VROz^tn)hnZQ$96<)mC_({$1W>tRo`kqKO=T5WzU0HX
zH5y0fYgsA*W{v_D4#u8->1PnT?ac1rM3y?u%zb?P{QbR2T{?1%I4bPeFU=Z5&GNY{
zE(Z&3&a)-9AB}=<&#;6LOooPW5~`GtWFl%Aog&P>%#68$xd+@pAe=6>aXIR3boyyl
z>Zq$<Q#9(V0b^YzB<#M)iz9#sd7Q7$eQg9{DmijM8i~-6zGB*1x7k{Kb_oZx++go_
zbZrir!b1Ri|F-}$=zz-qi2_tqT%6P8=>()agvdYCNIqX<u=#s9UA0o#>H^kXEfKd=
zZvoc5*56<0aX~2POPwf%nw$iI*Cah#(zv<`$`>h=fWAL_QPkk;V}651`~=Fv<*;sR
z#X$(~?d=`YtRBx0$TCj1oXm>|3s1tR%tg94#T!aA4;x@ek%30SKioeay?H%MBx7J;
zsE~D~aAb=91VWf9b~*S%z=w+v{v!k$xbRb;O!@f8h?9$3hx?gMghI|J8mfGkB|SvN
z+@e6CLAMjS{DHYSB95T%d@PQAb+zT696q0OJ&H5UN`<}~I6S=EgB^!eM>i+w-yR7&
zUN(Gf+qW$+K~fMf>IET6YUSI+4cb;O6j^2&85x9vf}^j#AqGs}<i{`>1o2ozD`pXK
z*r}PBFFT@yIjlK`oHRJB=|A3IPP4OtIRcO<m%({fdUvwt{Pe9S#D<6GieG5Iei8!X
zbgj*!H)cs&n}dL$0$-(YW0=}ER(0IzLOWC9)-(6O3qa0Ei3H4P_OV}ZVFlalIDW;w
zaj&bZ4>w9+0>Q%klh_EYOG_O1_`lXW&9O@|Jrbv|wr1JoXI+81{3RrWCmv7GHa#a9
zZSuy8V*U<DMj1$lB`ls?hn13v%^+|$-ZfxEAtAw_ohO(5cAp1@s%hKRcCW?Z#8QR4
z5-A`C4W<(l>4y;USo`N@ZwyRKjzUwFR5KJ`kLLc|1cPAU;4+#0+Z9S@@euq41t$$V
zo_AjE)w{omgfQxNR?Z%=<4)xIy}0t~tDEW<O2mz&G3D{PpU&T%fTjR4$K|lz?*E2s
z>brY5&2@AHx?HQ&CQUpXA4#6I9GCKYME;5kLWdhTS*Sre+Xy&%eX`#F6<&2Vfybo)
zK<-3^=GZhih!~W+1HrLq#7w^087GsQIP%X+FAt|td>#shknaGq>pEX;wY%A$&}|Nf
zfFud_yn21gK%)Y<Y-s|4tgL)k62gawh{((R#mCuZPk$&xzE$_)@+chg^Hl^<wO&j9
z+*jJUxjE~*VDXqgc|12~f6J?Mo1p?fpRKsiXT2Vxh#;3v=K9?pDi=qFg@-fhwLi|Z
zy5P-Mwc!vs*x9{pAI-At3<}80q9tLCnXwvYGU~M$O`WLI&H<(gJXmS6y4gLNjl<(S
zU2C+t2m+5zS|;D4KECRUI8ex;rKNB8ytjQmS@?(|A;XOE@w*<mLZf0Hy!iF&o`_p1
zLu<>1m)i^|2zs5bGfy{T8kJ>&Oob^abK!R<lezp)+fOc{^!D?WOMk6q8M6iW?Dog!
zt8~<dSVym?dP1NmRy!Hg)Hm7!x)jPA8XEZh?oU(W@E%T=-OhW%as|BAo=pJO28<P`
zy~v_eiaFlTx8(*^gilMB9_MR2+zQknFi;2-LQBAhzr6urAM*<mKK1wn#ZM)Ss;Vj?
zatZ=IXEDbmwXn{dj<=&^s>y8bM8^}2x>Z)MbmR2jU|>ORCx8%5Bpva2IM3;F6wx7B
zAy^s_YxsqKaJad7z7+(h4L~K%mIRBMPg#Qzv(mzWVi!n^jl-Uv_}tIDFE5QR6ou|?
z9%}TcQ9=_+E#2Mk*Zp2tSy`7G0Up0)Y;N^$t3O%I>V8hU<pS;c_UvrQ1j0B%f#unS
zg~1tCHnw_uCFELLL|t7#{t~pgQ>?bm{_yju6H^(XLcVtOV4|mAt@pS9VwcbL_<LT~
z$<CSn%A7hfu0d|DAQ;#=BV$&RZEIHgVyo$pPNTIr*H;j}rMaDc-@N-!wLTzLR~oIz
z)Tu|C6TT%Ek_9PsiG;Arm_OLBRodAxW%D&V-yH|?y8X!!a<H_-LPsTaTmq<P_Ufv>
z&wZKN&&B<TpdE5d%pkYp)AhE8nY}SPokkTk`eFGbzybhR<8e9M-(IFaPjHzemX*}k
z%bqPme<lPRY5P@5YUuuqjsY4O5Hh35R1u$v?(eRm;^RNV!Z|-&B}R+!xu5d~Y>BRD
zR8cBsiY1wOiiz1P{E63ZBP=PpJy~0sn5ZhLcd?TkTJw3>-`{t)-4M)IAW(F;h>j%S
zcQiUUU-S3(|F<gT?&|9Lil!NXdGM~VfVQ)YmcF6B{sswVcy!!$roqZUL18U0Fkb&R
zzl_3qqld$Oo5vR@#GgmI|IB%DaIkxd0D9u#=@b+M;8oDTz~}x<*8jH5;bQ&s{rz2G
zA)O`(EGa$rV}H3S5Q5H5?$xTz_Q~n#MMXv6&`3~FPzo>iy3qx++O*{5%H{O*^s%Z?
z{DxH2k)})kacIX%mCZun=H`pX1tvN=_3ky>!Jjy6&Pw@+&)qkbJ^9ntc%0T|zSARf
zbLAEjZ_r4&d>)LXqy_p}oF-uf8WWiSI0!jin+fOe-W-gh#E5l*fkBA!0ptdQXrs<_
zXetsWPKE+ArmwdTOt?ZLM!cZb`z~<Dnvc%~zu9FnSCWQCpVy<B|Ab%U@70~()%9K{
zIP^6<oKBN<N>&a5D!N+VIw8opz8?H!-p$ns7WT7X!29bDGD&ny%rDSL3X{X0Ss7NN
z5*5|ara#L`At011Wz!9^zW*v$U|<;}`TjSV3C)J&YZtq|ZNn7%rSDO5Y>U6q%cp(p
zFC&bySB*43CD`TKl+<BmNPJTcVm`3kU1PJXCDiE7N~{zstT$Y#V=c0*q{6Q(IE?W?
z#o)TrFqPc$DgF(a_dK7ut39b{8AGDUC>I6M)%giTUrHc9(<-1%!ngGnM`py^aqLiT
zTJX}S-wmTT|0D}=w_kDJ8;onTS->nDbsDh9Q7UctNy5r#s@kUY_|57ic*Yu^SJn6Z
z)*37P4|i<vMW5LQ*ZJ#H|L!hQMYQSimmfD6H9}J<4EZYRJA0X|cB+SqMAluaMV(l4
z4^0lX?PkgCN#|;F6EZ%}BuFr_t=?s~8MN&i0oWDMXYiwD#bf#2TuQ~NN^|UfFeVsz
zl@=;Ld#iqye9a`5mLcAEmaQYT$0*I8xng=KIGW1XzNypjX`L>ke;@Ll>P4`i{?aV)
zZ!evy6(S?y57GbZn60GXLNy|z5B~ARNYKFnicKx><1QNMKfi9iZv_4K+KvBhf9?O*
zK>)|Az#i&*&Z8R4AB^C8tN*#_b)Zn%#F{606yzqD6lm)!GI$^uHRw|y^roQuWa!1a
zRl`T0V%iCcHcrUfY)8pQCJNiOcoGcBEt8_8zLpj>DNMPVHLi06N-xA!!mUENS`zk{
z*{_dq<Zf0oMPg!PJ$`tags81PuV_&IR=0s@aj0O2S7J*jiZ3^DixcEpKp;1iw{I^W
zcTauk;UkNgU7XMxdQ6cc72#TY)Nj{qo4NP0Tj`!ZXJYo8?C}FXjIq<ZY`9Sl8!pFm
z3jE2diBzxkasT8<DCQC;mYH1{J399w;srIH5%nX2nFbopqmlG*my8(BF@=6JsL`yL
z!>|fD@RF64?J#g)#vXl(W@-BMOQl?msBRg0aB*fvWjLWgjaKNJ25hjAw);b_Kpi3;
zRCstQ-+VYSa2m$d$1HZV7%4nFJP43$Wepb)B98dY0Uz()KYsk%#N_pEOqn}dcTW2v
zdd7e;Vy(^Sh;?Qbt=T?emauQpDKrKi0e3j<_)~EXV+EO7O9DzPwmiQSC8!%X=cqeR
zNHR7{7!{(yet=u*Dz$3&Cx=)?DnBv^8<fT#R`IodwWh_nub3FRGhKLpx3{J4b#zXz
zPE`4*t?c+*?X{lNzNNB2EJy}%hw@u8)zzJ;%)pi6NfbErSj@|G;iI`MPx+@nh8Wmt
zxeru9nLq_-)4{~NxNXx+#}ovAb+%6df#zhPf35Fgu$ZKh*;f908Hm;|GigsxPe(^b
zC)RybKq}Q+O#IuwDJ%@~9TY^Vlyg~h)JQXI_N!dAbiKo;+3RM%FC4Lg^~{jRJhCKD
zC?NNBQ{-j7itf$c-Q8V8B*^OGGB2gur0#L6FJdF$qocTZ?>mjE_204{b?yW?Wi@Z_
zXMm(;_4mIrj8f*jU+>)$@IigX-c)P5f3fo+3<(Ny+UfrDc~V#S(`KA*q=)v`dk_4n
zfl1uk{MldwXe}e$7A>oV6PfcHit*6k{x)hdaB=Z#QrvS&Qqb*nF){n*6&eJ-_Y<6L
zWzPssAY>J;=O+Xx=EE3<m>CCS5H1L8EKmbJ9iju%RcBM#e3T8AN}-^a6cni2thA2@
z`n9W%XoPypYm{L^YmPGoEALdyuT%;d(wXke3{_R~=+%LVfN)v%h(Ui#0RAlycFHDb
z?o+i~=p{a=yJO`P_<!R&O^LBRh=2Wk*MGzYk)O2SmOuN+G8pPxx9OCXNDXu@s0zvx
zYS+01b;$pY!oiF^7OVkx$|`7xQhy3GmeS5>B>qlfC1Ml{8=Nl__}{yE$3#Vy>$f%4
zX3C4urWka1r<iMJmXtq$$<N{sp+J!E)4xh5nY9ji0zACQE(VjKTEC4ld87;ps!od@
zHR>m+MU_T{8f~La6_6&hDb|gd&-EaXf`Y=%V4Tm*zC7SJDe|AFM0MC7h{pn=pjx+;
zrrii60-O0tndLMp+>XzBt0epgLNY<7l2a*T!|Q}x4&g!28c1wiWZ8N&<rH?tvI!r-
z!(&kSK^)zc7clU;GS<>7+*5wg$WKck2vBey7il7l{OczludS74Wf9JPeNlPbn{)fe
zZSmV<NOH;osOk3APx1H^X7jhF+M!<<eqMl3kqv4=JZ-8fvO4zi3D2>^{_w&*9xhTD
z6ao&PN$QG<Qg1_HLq#-U_wocKBgLi~*#g)Ii#w2iqIdTW6pcq4a3_4znsPZv7Ve4K
zP&NYxh9t{ybe}WK*Nid+VsG)9C1_I-22=W$g2+neef|lR`jkMJ%U(wQJqg(W=K=Bu
zJp?k?WN&3gXt99&SQ(ECt<#DTD3rK}kVqu~32q0Eb8jea4@~%5nl*;+3xlzpB5->J
z{gDVHVPP^M=x0RY;?#yO496=q(is?jo5UiKBu$Ww?gYvvWBI&2-^Zg<b!Plt63Z1q
zU#Gqb+si(jihm}Mkz%lFMHKL0>^YXD&Ldt|^@i*o9JJUU&uF$^OOhf75vPqw#^Y<N
zshJrYqoASfY;GETw}K&Q)w4G>B}*HFj02g<%{HW@q%<}*ijkJPR_SVMzunF%0=gfQ
zT8NI$W;~t6%gc*g8m@{49WIy{I~*1f(QdK!hq4#uck6OBT3@M_eXsS%Z~y|X1Sgk{
z=PDwQh}QqTD3HUKK)~ld`kf|tH%*Fs{y%>bsUk^5VPRo$adC2#s?_Mc^1v-_HK%MU
ztEyHSZ7eM<hf)O!m^MwVtY|K$ger^iDyCuoi?VP0uH*aLo;XcoTa9hIv6IF|W7}3^
z+l_6zu^ZcJZ0kPX-}4tdXPq}Qvu5_pKG(jm&fcG4CI87r@7BOFZ0M`D*e?<5d4CZt
z`g^w$3}Y5q-FMUXkgZz|#`1<!<>W`BDLG|41Tc{<F`+9I3c2^;^YrHZWP+BS6N5;2
zs8&gOI6>LrcF@&z6%=Ovs8^qdoXs@~2I1fkT=4B;HC_LaHKHfF-f?FYq0t@8?}9Hv
zL5N;EKegs>oG>3?PY3kwUXEf;KI!G|HdTyRu#UEawN96KE1{gNe(&~-md`Q5!2}Ej
zX&nC<d|c>iG=<*X1T#`x7x{vra?!8%#CGys7mmK|Z2c<qDmDBDPtGmhtuOC-JRl))
zJDuB0*+m_W4UM#W&$HYV=AIbCkY#vo6(A2&1V;zG*8#hueJxq?O+0$PMn}xbmvm#p
z;D+<9SWXf<{g<cvTFp-}j7%YaX6v_f^yNA&1Z`h(9UXgnWF)}p2vw$=GLy4EhW&bK
zL(~uqpL=A5yDvg@;G#=3(sa2Gj8R({0EQt93^Wxhz<^wSsXIK$wvL^h@6YRe%MGz3
z<6#A1Tp7?2!Tl1y(xBa+m_E+9*{nElu>CvyA_DSq$ta0<9gP0^gEc27Lo<Po*NYpW
z{o|&jG&`Egc5Lf(I+_x<Ng*4ZD^b|$aATyQkw)HTNk6+kT^f!dm^*f!%wYct50B3B
zkQ&eMzbXE{@Av9O%9<5wRbR0fTHD*Tw6$;f{7&Y}3Jb~n{63eLH3Es@p@WW3L1BF~
zky5&dg_Jb#=$TR>2OR@rp+-OV=-GHUhMbbp%frK^ng%7?!DBk>dBbhXW~-Z@nb~2X
zT$P)f8#h{<G@j4>YI}Du(x|RgE|Y_Sfq`z^vT603L`<j0Ed>jUa>W9N-DcL&^MCbJ
z+8m4Ivw2|iJ?~F6H8m~RG925xH0T6;UYw1LepggjfgW~LP^BP-j9u$Ipv!A6N6-$L
zV58W_3*d5lX{@R`FOo?G2`c4A2S@?6+hT$IMziU8OP7Lw=7ybwl$4a49hB6WVhxVn
z8a)CJcfHiH@j8f;Mv>2=k%v#I_v^=KXZ1v_GX>n?kXs5Oz>_8}IN*k~ev9V2=xjSJ
zZ+j&K4}jDuwMOyLwsRT$_4!Z5(!WXC0f&(dh}WlUM!meH8UXlRP&?C{!5z)(8hE;r
ziG<K6SaUFyW8|kZ6iqNrjsEoUuB@_DWyooJ_;7BlYq_Ut^~>>Oyr_bT9^vKwz{kg)
zz_0U?IR8iTN4F`4*Ar*8uEg6yOQASKkF7DM-Hz+Up&FfWBGK<j?Fuw>Ergrvp%R6<
z(?zEq+Z}+I6A5fvOlEX-%KcN|AysaDb-|kakQ)qO@<!(deXYs3eMvoz5F<*%-o1r&
zfyf@pwUz?~d^6WGqotaI>J4HBeR81x54q^A#>W+k>yfSP!-O>c<Cg5Vs>-WP{<F~N
z^}g@xE&2{-Q>Z;e5{>Zi(B?Dnx%~aMPa)d(-;jV1vB4z!=aU5~eV_Z6$;=Zdfgugj
z_>lw0bXkxBLZXx_QaxO5<z{5ipoT-zzT6$pt+m)mz-IHf{8t=Cx$F+)MrhS4-9O&i
zq>Hqgtyc;pVh1QR*CT9@vl%ETC>R+PBsa3-;*fE1EzQhQ)6(3}mYE}dyPmJQ{QH|9
zL9I`YDkUQF2L##!$F}R$KYw<wcKW>@FI1_}d)^<`9?sV)u$}_@m1~w7=ql7IKoYD%
z(*?4WHwWXlx3~ZOoBXsB78L~#EO-07g75?wyuaLozzK4$(vp(PjTUIb4%gS$KT6~=
z*plFW%H(i47`;B6JGQ;em;KOgwtoJu#WT$miAl%heMcpXJg#23++_>{RBqMoWZLzZ
zXmYT#-#1JP`laURQP|~v*~dcvOB$b?o!vVZOCadGJ5TMg@-~tz<D~`1TI`VfkS~BY
z`V4Kb4KT6U1YT}_C+JY5`>LeGhi-N+9t3@(UR_`^KH4N0P(=Q49q{bL1$bZZm8pH-
z(&Gbe?uLL`8(u?;@C_Y%T|q8)0Fe;neMbk5|7sX8(+v!4dxe+ExJlQ9LC^3V2C((9
zHIqXFj70WMVPT^OOBa*crM0m1pYd-V5Z4qC{2t(9V#G@5Ka8wzcOwHu$kc^iW3agZ
zRL_SYeOd4(T#Pw7n)}&wSRwmLDE4fCY2KBd{5()(|0t}>2Mkzk99~#{_>+f$`R6zJ
zKz{!~+gI;~Vr(FR5ZPvJ2L4AD7{V>UhYeq9i>#&r0FBl`CDSxp*0zYP?IJ(Xfv-Zs
zu?p9}i}DsQ-TLNWWDWpeilP*J+U<0foQmo1(s0R(vkyzU_09h1)YKH;G#X@lN{SkY
z-a!7isJPg&NvlA1t=;9+EZ1kT&FN@<ejbn07B)(#NSR)zRWV;tHk;>uARKLHXXl{&
z#VD#s*}}kJ8-&EF%1URR?3x<JekNO6+gzWA^w`*G5VjuA*EqeO><=N{HtEJM*4vyw
z4bRNXC@Cqinoj(Rj(-2n(<Dp5>w1>f(((v8eDC>QYuInQ)xD7?9K>oiWxd)sIyq?r
zV&}l(2GBjKRcRp*@^O9p1~Pzn2X7hT(<99`YvR$k3zeD;%gf8*Xq3&C3vfP6D`rRg
z_#fvjPG-}qOO+mn`=cvPM-LZEu_kGoU7iR8%;3OklSN`m3I+OAX|VpSw*!AvIejEe
zqUA!_S77^Cx4vJtfBo`Tdc)`(<%*h3Een=>HYp^+%nZt6&5j0Uk9WwFu25!699j=q
zwSM1{ZC;##&Kd&HyM;A=;C@;oD#_&PB!&;e-DW<mhmJe8RLgN4<uoWs|Cy6^hw;2-
z*!%;lk~(-?{a59g^17ZN3@<O$MA$k$@{CE#u%@K62w-3mB86(XEFuoQ-UeY~m423D
z3_zkoX|eOkihv1Y1E{tn0P%=X3#>LvCSz{0OSy3(6XdtlLSjxBxZB<_OhPh|g=U{)
zHd*1fIy8{hlET6R@$qk)+4$6fl+;&;2yk$Ja4~@1(^P*Cp@Gl3$K-1z-N}9@8=t)k
z@%1mk+sagsb{2KpT6sw#`9j(ejY9ccA>d-t4vZHUB*A24V5lPgt#<Xk2c1N=_15sm
zb2o3VoxDBX%R1a{F%#T-5DK%n=4!<L^~xjTV3b&Z|LZk2wragQ`4cwl4V{&V@!a|*
zA@<=tH)WI7`9wPF|64>?q<kDl^1V^Z#=@dZucqb)2`w>kUSs2Ye}Dhj7#zufgO0cN
z8wi2yxY1fwgq*hcb8%Gp3zpg~wmuJMnlLahPEJllM7d*QWACqz`t8o)Ep=@j9eBC9
zWKuVLBsILf4p~cIuYRiO=yZap5X4)%To*e#*H}?bJlPCvY)K}XWhy6!hsATp<{2rY
zKS5wVI5_C*>+{aUjiz8?s;#e|U0GQH?MQ3En%6LAhNq>aU2ApNTWzxX5@_$>K(bYo
z!!yogdU)9U@Zhf~se!#^6|?si6j-iFSa!#*rd+2{IcJ_%_q(jd@J7E1qhRRvD-+Oa
z54QDyx7k5-O^1gT4gghJ(Swa7oOa}p;FZR_wG9xgtaKz_I$ZGZn4{1lzyKZHfSUe;
zodD}>MSnq5H~_RGPtB(qx1EZr7udcrd3&66-|`i;#HB##`JEmRG+LE;Rc9Q2C$aoD
zztX{ug{78u=?W~@5$Q+zJe%o~{Lni5`HI5)=fDw~X0ULLz(7j$(+S4Y@Vk^c)}4bs
zBH&~%^d)?mv*BusV>>7`&W<f8nqX4EH!vDc!TKG6h$GPYueaKH{=nw~Umpno2aU9i
zNHAnJLDp>7FNh=L8csep%N)+_y&B8wh@Q)muF-+|>FEmbgUbmzH8afT4&`}R&3gyj
zdmWOL1>D7a+M#`j-WC0Rf2IIK@KZ-k3$8{t^1rAsRnbaEPyZ#b*I|8XN}d=wEj?XR
zOY26Oy-mmW{l$fsw_{*nptF+?zCT#R(AxU!Vxyx*zvsV7QvUw_FZKL>qMTNXbd;1w
ze?q>-#Ka&XBI4lSfD(cL$a_WOaY7^Fn{ypG;MbIvDpo9jj&j9-2r@CTAFtnTqn#WX
zmMg|;ws7=u%g^s%EE(j@qHx(GJcc3DI_HGFz4=5+TU(#5_l6zYbjVQ4RLX;cA@T4s
zBe587cr&`X-a%laqobRhoy`&OkzTN0#ST5#-v@D)BpGUo2|qu-*<^;x^UVQB$9*4G
z%>L;*dx8fDX{siFT#*<oKR1}^Umu0a<3zx+Lo!TFp-WNlyI<j!^tvqv??Trt+4U;O
zH~`rE3F8x@-ntX%`cBUw%gyIc&F281q_qAAYQ2pW8)!UAcf}+njSu4AKM1HI0Q}eS
z>8ga3zQ}!xpZFbM=kxN#>w}a|KOCa>$}r0gO{K_tVY-xx&5;fa*l7P<)4d<{SS%4+
zx32T=ky#=EfYoXd+T66?hedQbnVb3Bg{4&=r`wH6#2y0xTNMAoo~`Y<z#(Z<>Wu}z
zVKPtv#J0qbY^V1UFdQ~CSh@a}8?l!gNDe`51iW>e)6AZOA@q79DXKtCW1_U-nrXAH
z1SCM4+Q6vy=S1H=9Gk~=H-@Mt2%5v2EHxes&-Yts3@BBS!qe;i;b{-lx^8E@t@jy5
zB&a+)-;#uf&ZDB?<mBYw-~btHR@PgPxHOneFIqOCQOfHySuTK-!aXEQzT|Yh?RGqs
z5eA8H0<9OMJ#X*tr?)5G8`$dVOSebUHF{lIHA`!2YaMNE(S-b36p7Ty(jUP;H5dQ4
zNccbO$ji%v!h!W%@#KFK+Kr9*`S@;bZnCnnBopvCZPydXW!y7!dwM>HLzOw~V5Ey~
z5)}kAyS+U=Ki+XdzaS#ouGAOFQsA+f|IOld+IQp@Q-TyORVlAC9{zZ{o#tcdR7x}h
zdwIO<0oi@QkEa6l8a)RG2Q&&<4N$Uvxj#h_AtWRO?Xl~DSXo~6y?#F06MUWc^GBp$
z=Bnv#GegyY-^b_t?0h<h8x0d@<zIqLD<8Cs)k54G^6i7jqANS4AQ+TKTyAW5@b-CR
zj+t>3A$TD2wxTK+qn-g90vBRT%*YU8eQuyy*z*%{1h^1@{*!O09DREi-ZchRW5hEw
zIXR#MtG)?hTSy5yHrGHnK$52BVTYd1zf(t+3Lp|px<#EUC8omn;m_8%Va-V$Pr`!e
z4@|{M(Cno(V+W@h+g9Si#E<!@3}E^Pmc-VT)4;|GK|O28BL;^o<OPHM*#SlTRAX%D
zhli1wrgm!4-bgws`u?BF_K)I7iA<D~_ReBRL<XcNPfw)V{`n--I8Kh>5?GMfD#`tG
zCD_9Lu|(2-zqq;l6KTr{IZ^9bnZ?M1Lr5Xif0qZ&vrQ~vX=;FN=T!!tm0-&SC6l*$
zk@N}``TtWZ?BIQIWT8y#i^+as?Ad*FWzB^bdb~7pb=}^L@rOtWGD}x18nDOD%8rkQ
z01)tDq(;-K5L(@dw}lD<lfu$sk?QNgfZvs^T(`$_aoYxUDyvMn3QEbz$sk;Sq$FYd
zpws$uckru|)9wEL&rO-w-=!lXk|`!0TWLqrxgG88;Qon;iK3)RWh$|R{K_=RAgo<n
zTy&D;2~VddBqY?=vnVJiMEqugr=_R&x!M0Bl>kyK&#ukM$>^3Nbv3o(;$la9EDQ{C
z%*flD8x~epkl7Ckf)E)2`IzDB%F4?1b)9@gY<zqjWo5^+<+@QcO3&99T&qr$P(!lx
z>}-(f2MHWVY!egF^gE=f&~J|Tq!NUMg;~<0Of*9c2?c#+=Nh%DHXAMG0w7>Op%OG^
zzQV!j=;(BRyqsz_m_k88&9KQKi)v|UDJjKwbab?|aE2O!G?Y=lyO4^8ib}Ffg^<tL
z{H;_eAV1&kVYc5PbdQjN90LQx!^_L-^##1QVM3Odm$ys>4l+JF-NMR>wn~4X%=Cpp
zzq8ePrCxuj%E{HOhK`=!>BHN>;&@GUaHmOgNZ@?vg}zx_pj30E=}D`2_4{G6anBA;
z5UU44u1BX9i{AmC#C+o@@3J8P@U38B&2qT1n^F8wuq45KVbFDotUgs&|7xRh$)k?O
z-V4B5`pqnJ=CJ+2v>Tx8`6xly;B;Lz14AZ8q>!gr#8V};TZ4YDi*~pze}=P~*DvM7
z9co>8Ud-g<4ET)>C+6V5%&3gZr4VWeze_9fYiZUHdq`%r^IpDY$q9ehYx}BZj_n;6
zG1X7KX6bhNDvZW&<W}HMr>M<U^vtm{-)SGw8U8RyuzAK1lPodv6{aJ6KS)G8pRRTo
zDda5U&OoLI^fNslMRz$P=$m1O8e+#wI)nHH#C6V~zz51*AjjSr;V|=CtV*kC41_Uh
z=?q@C>Y^g@So$queVMf@#;qHWQh{P0r|;dr7E&)J8XpMudsq07Ai(n7cHgB+OLv1H
zqTTU8T3H$OGVq#$f=F0571TYgo)Lh1Dy<9dktOFZT+4t!Q>A~2vD_#N?okNpmppS%
zRWCl)SM34r|Asnx=e-Cm^$oY~!dH<D(CKu?US1s^6YYim7Jk7Mz~}Dhwphm<sJa+%
zsHu^woI57ub5~SS3fTJ`1LOjUL7whcC>s{G6ecDn1v&W)+xyTa3S^&yj)%uHmcI8)
zy~()gWClnT{nckCa|O3%XB{Wfn2U;vo}ZuXoIOBb_vW1QdFQsQ{iV296B%V3$5kD}
zu&u937!>N8Tl@ZEEcD5_d$P&OM2ykDU-oaox3};07xivym)GNFn^PEzDB}CqfFpsE
z@($|q!dm;eVmXiJ=fIXzf>6VNfB;Yrdv^U-+?fw2Jor!iHwj1lM^I|NlZf3Mvh0<B
zd5;#Bwk!DNJ~`Qwc-HoaJp0R#O)e4keXU<)%l2^leGn1XVs#Zn=|#rFey`gO_-4j7
zy5k7(Cgh|uaRCr`PB<SW*LC%c-nYW<dfS&|Uhu>Bp8WkxpU84X*h7x%)!DqSes6Vc
zAyD@CY1<333DKUb-G^%5gZ_IRc+Vf^g++b)EKwSl8WU#Uo~sPy&QGS>TQz}azjQho
zY3YcFh)uaD4=dzwQP3@Tf~aKSm-g;wkC0-I{uUo`c~4yB9(1II#bjI3Er0(j`0HX8
z#QUZPe8j4Qv3AYh98;rPKaQ`1+G@$~c&>&gN*Dc=36;xNdY>WJY`Dt<M{aifT^97U
zV&Z|<TXbv2*y6~+l4QI0)txEHhS-}piR%5`-B5KJ)>rS9jKr$6lry{oF%ZJtaGGZ6
zTB>8wktw%gBbta@&;Ue)r)q8%qsSDKP@K^GzW^>seC?&Z5JP|BDCuFR1>d&M^w1Lo
z%e5s}{W4VszPlgOBi)yA(J+*jE{Q%^OQ~)<bRSEt^eOKx=+ph5uJtwL<ysA<ay`E9
zAbDjs8B6MLyM%)T*VbOcVKt>nmM&9~Mut>)Ba?~{CCyhHS<`i|m`I}j@e^cX={T^B
zgGKTs$;vB&cI0qt1RuVXOP6T5zLfkU%9NP+`f7QZs+uuom>H&)NG>lx>%n3Bik(N*
zTeekWcYfzoVkVX@^aYOgYvw1i%fYpYz{vH_u~DKJMj&8Y$#=E1s=okJv{?t;X}51C
z_~?sV_q9b^t=Pn$e`z5zU|TO6Q|%jm-#?4Ll4>znGaKF3?x%(eDMm|)E}$flsoK2k
zJrY2a8Dkq@E6!uR7Ly&6fQy0kY#DOJvCpJ-GBU?NAoj0DmAlN}o+m=akx9Zsh%5%%
zpw{3t2A@5F_4wj)3wFLIG@Jd92N&zQd1S#(VJa9=%-Sybjv%{!*s30%Kk|?HyDXHH
z+G9qg2i7n^T)kk=8oxqY&y2{zepbb$S+N&d=lSh13=JXAuy??~yLw9?rb}dj$vkus
zzIz>=-C=29m|Q_$4vp9^b$j_QVNHxDI80!r?U;Y4A%}<e<`=(y>+VG|l$}k!p^hT)
znvaq+?~lqHPP?4c)TL>`PrAg>i>)3%knaZtzO@#+lEOlr4%f+viHY&?@r8wClmBXr
zPE5$k$jAr^3I+&Wfkq>U1pb?x+U6)$u@D*@e8oJ0M94=)OM82D1q%zyw5fBe-witb
z>sJJF>hb_xOiJX6To3c&G*kk@7JVUDzmB$NDJ5~WKGuHBqB*PFLqQ0j*I?@%;yGgd
zN9>e>{oMf<g8;wb<Y1GbEefXcIGl-xut&bMDzop=z;Sj-^}F-JTtelKGBXt|)hMgT
zb7Nn|3Yr~FJlb?sHQ&W!MtLUu#4A3--5hE`zecXr5>;JjynY-5BGU~<Wz5&*7kBO_
z@UR?=pR1WGQo+i-zd#U@KaBAd&((XP68N?`JX=v&KeDnuy2K6Zpfh$G{AY|5g&fWa
zkv&oSDCH;RQ88BrcW6f_&Z=2}jL$=!qUKM^mKwFDI2A*&&HgNOW^%;aUvY3h5%Bl8
z(yz{@QeldxPd{u5wSRi{6^tuXi+VNxoyGO~Y6hrOQW>Be861nSzQClr(avKy#`8^(
ztI%<HC8VaL<fg=>+rQ74H0cqXqu4OCEY4;mMTv$q&rbJkEet_uFtC0)l$EQ<h8Kxw
z%6rJOJ{Hq-y=>lkxw3S?w%FtE-KO+5-N|^W#e&5J_v-w_Jj8{D)YMW<dSeM67*%|P
zb&7|oW!wJgt0`|Qrq^mk75)Q(mn=~wSv>xYRB3v)Z;GV(5V7|!jz=t2pr_8$^5pEo
z7B}{u25}jSiPTLb3|DAadx*AVmA?r_d4!RPLs4_RwD!UuRxQa003x}V<--G9EN-V7
zMLAs4!{j>gH{~_XwK_iIVbaeI?Y390=Phq<)q*8RZYUm&R$v&A$4oi`{y5S&(##)x
z!~`&KT=dq{iC9cu9;stK@jlJLpWAE|f<43$FL<gtn*NSZgW-YZ(P{%9=bQAS!%8pO
zFNT#eOfqvqp@vjZx9W8~OAbr@iK-b=A4N9e7kBn0aAbTuGCJDD)wQ{?(b?JgY@uQ)
z<SQ13-R6I`?d{1Sqj+z37lig4LBDRJLAYq~AIi$JAR=Qn9wH+rC*b#NtgN)2&f%9X
za(uZv1_j$NM1s{8yIhbsN*BF+yk15Zy)0NQG3eD7QgJRV&eVYoCG;v#<SzcrNQO{T
z3I@1bP0u)gnKb74G*!V-5u*V6$^2$qrmjorODuMPf69!j#p=rV(CL!Qso6tX^iG-%
z&FAsNtb@(4bL<%c8^IYS;Td7w<Dz^W$i*3&7=B7W$_IwbCy+w&Td!*fjWbrRpRSd2
z1Vw}8ZP{6``Mx4K)wRXUOkQ65G}@hx^7gznA61(7r~y}lQ)Ra=6Ll%ti~<e&ZM)C$
zNrDQ3Jhu++`ueGP$w%si`^DziRq{1XEsna(<}Q}Lt0&`Di4Dp*48C-zzraX(Yay;*
zmvlAlNSb@?vrH`jsxqpyc00?W=5mpWfB)8e<<D9msY^RXV68{na*v!pi@)1r8Khxu
zR%tyoe>^WMSax|%4c`K_TXt{x^JRw*nV<dPP>kdH<rdLuH5Mm?&$=~jORRQh-7O`O
zKkmkp?~_-@7INLw$19igG<?{O({!xGjRtnR1)*C*5kGCv$x;7lME^=+%IXd=iwsbD
zU($WQpW5p{I-*?B<hr7=>A3d_5huY)H$gW+SH}?4OjA--eYo#SZ^LNA)tZ~9cQm{t
z3I?Y}US3T+#kAGbaVH+08Y}CImaS5w<6{1_b?x*=Ud~+koOg>)jMjd{=*r-*D4$oQ
zZW`0n?YTfjtx%)w=6;h?lfs;w6_yW>d11hmnW*OP7C4M`VD_a)w-m$6U37Y701z>A
zb#ItBn{<8<?%;O+-n#iy{%6oErL)r0W4linl@f*>Z+maQ=kp`r$EaERi<>65HG(|=
z*?fGHGG}2HxDiN*B{0PN_GqZBd(Ia-boqKP1|2RGg`7k?Rx{nE<R)$(xM-D<qvv>i
zO&%^piZ<qZ(lIhV^O&d)EzTaUe3Fdh^usgwPGk8f>?Mk`pV@DH!{ghnDcMS6iG%`1
z!Ar@1OX+2^xEw%0mx#fSmo8#vX6E;Lum-taki3KN-sAo3sIIOaB9gC2MHPW7;QbUv
z<cm#2Bxo^P2nGQSkIiIowcXd{dB0j`3?nz!8FZBE_t9p%(OxW<`Ck_A0Y#dp>pg_6
zmsUG{GfK)foy|0*LP;fa3Z@b&VfKPSdu;invN3^=BE|qTuFxae8?hv8K)x``atDRr
z9K(s?-r98Y8woYBl%;12j*ss#Kba>}Kq8quAMMx&*$vt@KxKJ-O%z!kAqaowO?F+Y
zRWZ-Z1C-9IF`T>?s8B%#0}j1Lh73F7)0LGqzp0e>YufI{H|sjyv%p()*WTW*p-M_}
zz`#@}(FXv?JYyGISG_O_!sDjqr3qVBZO@kd<lamLJDe?>vw;{i=7i4cC%A$I=Pxg{
zGUnEIf6VzSumZ4|bn<EReSHUu^D{*@{<Lf@H=q2m1T;KtHEU(ADlfJyolkPCJlA~)
ziT2itKUQvj|1)WI;$osBhWrH<2tGR^69^dv1uT1;p1v?!d2*bOlU_XRS@qU_TZ{T=
z9L$p+=eZzkN%iC4e*M_=di~6D9vGc90X;QVj^5318UeBYM!^S{_ot+|(&3FTZ6>36
z^Zs0Jten7%tCTkVt#nC)$36!zLg#+-8f`-a?E>cCl)AJsX5))j7h;kgyLiw4`A_8W
z*Cz0{Mb!>Q0;X-C(vX}xAX|#}aoc2elu=$Pc-EmOcGKQwud`dw9}sWCy%xR-OPyo%
z_1f=X$gjhzwn6<WYF3;BG2m1Gk+?@qDHu+e_nikzJN5kAC$ZFt@(Gj>0PBKu+`U~8
z;;-0|yIQ<o9PBQNpL1u{qPl_U(@3?>j?aa7_ksbT-txffPIEj!+k_<FvDRjT-TVaz
zwT<G<_B1VgzB)Kkf9Kg>B2JByOZD4ubkhF*wAVtoC6Ma-v3xX4XR^rpIIZDexRBAR
zuMu%hh`YvHZ&&ua^nIGZ%;%{|hpuMumXwSvL|fvc`)&8e$!z*P2$~PbvuKw|WgsCT
zVbtrSqND5dytkB=9t(u}3i9~o8ERDMr18HVuYKR1u2bl>yFWj?0)+Br%%8Ymy7Z>&
ztu-}qF7Km}rKO~vZ^jux$zQn)9v+@eEk}&qj&R{O)L&;~PjvX<J8vf3Pza*>SgtZ5
zp1KV)KxlVA@pn|$mshZD#o2h0Nf_QtZk3br1jhvJ*T&g@D$S;@L=wK8PZJ4ha$2{R
z$n*s}1a@8_57>1MvND%xuuE5E+1*s?>Hsh~o3lvxhS{6g60-<w0=7I_j3pBwga?Ra
z2ew;x*EePS=#3T?fan>^KY^O82bOPkWc+$=hx;(X##ImII%KU5=AgMSEi1S!#1-sS
zO0~I|bga!E@6~;w`~z<SzlTf67iay3rQzl*%9-jhZ9<kDHwP&F56b6)h=0;8k_rJ=
zx3z<7muDJ|7iRo2pMRYQx4CNR{=QhUnd4GPSE+K3WoOgr0(svJj_?$0uPb9@jlduo
zP-V(}s-Lr~H_0}~JDc98VuUB5o3CsT0P<w=S2UyzchAV)>!kIt+?Lz{KdP|?k0j0>
zc--b_Y85!YFye4UIDmQ61~q3B3~&m6h7s2FH(i5qo<C0q158v8ye<hP-Q$0O6&@BL
zM8`k?1O+xHDCB740VW+GgW$tmbd#Ij#;5yTKj_FXN86}LrB$K@YXEWa9fu}vMS?1;
z^QD;2bL+h!`zY}mFlZ#lFJPF1q4(>)UJ^l1>K5gERbBKZi@@Khn*Ny6H83I3a2{x1
zfX&#(mJ&q@WmnIPz0yqa^ELf#eqP1R?Qtrb_qI+Elz&;%t{w1O>g&rvpUTSrO4Fp$
zYh$9IIK02ygA58T+Z!xN0$GuAnRtOAHU%A>^-8^osi`T*cCg8%CM9)NStI?O?>bIz
zbVAD6`1%+HP7F8ZC>pFt7v~ILEnjMBcHqo(%~WfhTzoS;7s;WsmX?vbI8@?NXvGz}
z128q+&i7?PU$%CAo2CC9r2nex_88n693eU@)WTFIT3pa{!I6WaHyQm48aoCo0zB~d
z{c07bpWV?~bDxs(--DuLu|-o?Bz+1)bO0C<E-J@o%Cpdo|LxCY4F(TbT@9G}Sa)&4
z>oF#3=_vHDxcA3(8+MT!wF%cjLW0rBAO}O2eI0WmpvxxW>zS^FxBJLiad{a@=?B|Z
z>N8fC!7{+zPB04Uux+cmUnAVwPVzU=R8{>F5HIa=Un@vIVP9tt?N8NG?DI_kHG+({
z`cuGV=`Lw-!ygKOzbn-ufe}(tiEkIG_z@YL5XOx}WhfV`fvXrD4e^~FN6!7tVOyg&
zd>%_mA~AOQ-%C?u6CPu89Jr-pN%)+=6Ka1gC6vP1zH6_eP#n}j8}|WYzivNX;(3V3
z&Taik<(F7E<q%R5pw#6gDOHNZcIUVai8~Mq2>c^xCHRnO+rR`rP33Jw-{f1w7m91A
z8G+m3^Czq?n-k%)s<AWgeGEzO{Kk3m!=x4g<!4iUwEkyW{15tJa6nAivT(PAn)#J5
z64z7<3S8LM1aX*!OSt%u;;Sfl|Aih}OaS0jMP5qi@;3RC5gGPBT^$>f=H=yu@1LEW
zH8M7Sj{CyN*+S&^HnX<Y;q&@{f`URwNH`or0NQXhHKiaL?PWwymwmWj(qCIyxj$cP
zkxHbX*J^y)2_wp2vq;Fz-71tyG@Z=os<KvKCAmN$f_Bw&excNd(MP5H;rOHboI|@5
zYkq)3F|Xi2^5b>VCLjjvH1tgxRb@7EVA{=xa0g%B@(Tb2Pe0jvKDo*DTZ@Q45U}30
zv@$;W9Gje~7Sl8|G&6sjv@6=waq=xvu7CuZ^!UpcB;`lx1wOvP=s2i`OP6RpTqm^8
zhj4kd>DK%u+;fdWazX4$cd=4_4F~@6)44v(*zM*HpK5G0WSNOnzOW%WBc!=G3Ojo?
zEN)h{2M<-Zy+vj$KCL{PCJR_Cl1Y<t^yK<HKJ}wLdw2-GarY$pg(3B~YfIC?u%CXe
zRENh`qkLI;<i>yj64w-ToL!~Fl|p5y{8X;~h3Vb?RF*Ml<$)d<J*Sl0d^|{fEnXQt
zzrlERbzBoL?2`Ck_FT<jJfE;;EYZW6b3_N|xSIZISsobeWMw_p7WqY54#P=P#Y+pU
z2`rBOv9PX~$)C!fT+fVo^C@hJc6+<^()YO{2mITIUKL>g;@QYt489c~yUXz`tZ{kz
z^X;W-1r@=<rN=e4yf&}-53g5Mo}%P=OOcZ4;bz?T{xYHxqPJCP%jAqyj*3(GuTI*4
zhSN@Jh&CqHg}G?6#NWP__wX=E2|GL!1{N>nyZx}7TR`YL$SrCf8Xx&Qdb~X~?*Rs)
z6IW1_erfHWwAyXDmU<`iNW~hO%Mb{8Rbs4t)xs?~8~F+!D*5!&v?Evs3!?unPd+De
zw>Vs4t+xtwhqoEDt8Mu*y+1637jGJ5Bt(%~*jk`;Cv#u{p6$CVMLN8B@7||uw2XE!
z0r&KIrUS>n6ZB)_Lrw#WC^3gIQf;GKE|~~GUZA>HR(sz$Vu9xSP{pY{1%69!<;mGs
zQIIXwm*W}dSzhsQ_xupkCk-quExo$A0S5&Bl)0QPf;h9lBEw|m>dGF(m}(XL{QSDQ
zy5GNlzrDT12|ZqIveM8<>*(MW`9=Jzww6hc^y=}krJ>;~JpBHOFA-7hW|!B|(GeCp
zdZXQ3C~7#}{>|UGxHL@qk)h5YWVpwun?~1ZYOhg}hk~na`YxkN`l|OcZ!0e7*@eZy
zjj^r}GbafrvuzESwyvrPj^3HA;g#XxO)QO}sXrvEyflBltq-o!b8Pq1=&CxX)>Tco
zN)I!xTd(^=Ht9`XYO=|Mbp*e(y<pHrLKQNtv!7KUnT-q{-XEA{A&YvoY-6{}s?PLS
z^ytO=1mqX27yJ~_G*nf>%jNJX@O<TAi-#@jb(kTX#EvQZtKzQF;kCvY?qF9vPaBye
z28QUn<(f&49C0)5^uv+p;n!KUNh3oFg8*VTpi$_B9@>g(a-4Svq5U%awEDWH$@8?r
zPOXS;{|gU&L2!h-Rk&J%EWr)oLaUmFRy~zhn+w5?d47C!daGKhn{;b()<raP$5*}^
zF-4yFViM%N$JsGJ-P3)-harIt{Bfu+GIP!$)t~<NP3IfkgpIa)v!azMZkMUXc>Xzr
zAb@yAXY+RUK2c~YfVe4-$so^xcu3mtbo8YTWdqs1*|7sSB97W4OB#{=S!~<{OHwDa
zKGBt)+-4JJY@no?pR@27`NTEG562WZW2L6Av3GeY*twv%uED}`Gm$t-m)RzftcLj&
zw(rSxub+=Jz|?i%GGpeTqH?#gI)Dh#TmbecE+k#9_J@6Vy@rg{Yv{f0@dmiP2r04$
zuY22y`}|Md?^Rve<rZ@3<&Dv9r+RW;FT5||QYiLRLk(>yi`0#9jCcwPyqDVPoHi5I
zzdJM4N@;%c7Yve?wTT`c?OR!yB4KMt?svz?Sx=s4wuwnmD;b(7O~)-~rng8m;wYuw
zAycA`7w~7&s$k&n4mE;2q7<zGw-;?D0OJQf3}){ovj#}`fmaw0^>YpAjkaQLpAcE2
zR94L5;ho|kb-v3m2tz?Z9UL66q(`|e?fgK;HKHj}rjFV3o)w9gB#V~>gi7Y($w1O+
zVn2u$F53B?i)4H#_wN03FdC2ZzXjIsXDg^>==S*bZ*rwZLJ2j^JjFR3h?gzDP!>2i
z;9&wwPZ#<-E|}nv(UF&FH)DMgI}rPYzh!Ad#3y5ek?GOz8;i#jg|1rgA(9Q^wSxf~
zkoZ3;sEx6{^@{~twvn;_YklEyBWPa4z9B4zG(o4f-cSC?)O2-@_m^oXz_6S@?<pmE
zP7vpclVgxGR8UG!lDh$9bF02Jw`sJ2fA5Kz8Fbhy&Ui;g6TH;h$S<7}h{cXIdoMoe
z)HchAa?-k$izmy&Wk;BH-xJl6AG?pTGUk<ky7<efx;mB|w8++(bGoBHPJhDApo|U$
zT%x+aUPyH5)i6>~DN><>tdw8Db}x+YEo!h@#UR2B>Ug)90YrHRZWPQfO5L2)@)ezm
zXT81Qr}SQ??X>oIzkAAKdY}0d2{lqo^Jc^3sQgT9Xu2OuTh)C+tI&+y^tRTzh(!Wo
zb<X{^elF030=RsLp^+{hK3zff1aB6_Hi;ZnnT;sQzn5mbvzZ|Qe~KvqyBuD4E1+&j
zO*h-3d`snhL=)bv$ysVt1|b6tdvC?)fN~r+JMV>v-S>ulPI_)3Y*7%^J#sHfugB_g
zQ=8Kc*N(=I_X=m@Z_fbKEaWE>aYP=_{}BjtSIyk<`6@p^_YG@wY2e)`t`4lLL@2xG
zym9H&S%8qxP+0gffFeYMB#mkdawy}$E#&iC0K_Fd+dm=_ub4#1qN=qfF9i)w+X~Kr
zFS1u3@~@wZ-6r5@Y1`Q$j&sOqy^s|3{~a+P^+Nmq-MI4eKXd3*o4xtO#D)=r=#(qJ
z`gD(rGFtjfT>?jJJ;rwLz<A09as?*1h(B{7KG5#LHLl#;bN6=bHrid@U;GlGsZM;o
zJH-piMioMJyWFp5+nff)#6IVJMgLpR7&|w+?biX0CB{EJHRbyNFB>wnDGG~oeC)?R
zkwlD+fl(4m)Z?@VUA6StkQBS8s;Vm1*7mcDyGr5#wu?t3T0tq{?e^b{0~*EIO2=c5
z7X?1QYh`);ER$Zx;{^e~?fR<A=|>sLKyB2-M8#6g=a2QVPaH|_tL=~XSBiGuZySiX
zJW224Ayy8Zd3gqVc0Gd+C&}^Y&+1d<JjXtIulw1&Zl)6%CMG7TZU~FdTkC&}UQ_73
z9?lzDTBaw*Gns8xVRSog@?BmL3A1?3<ZHTpwva8t44YizUeuYQrbAYVUzIAdUt*aj
z)}L?nRT0I^-$M~HeP8M6$q#B8gb;pPwvI4Wtu@<hG}~0^E%{Y`Btx&2l&aFI-CeBA
z^$#DpSXAL!ZMh5KzU^wqxPIR_n`^P#U>buSK8ki47X0zKwFEz7g=~c!-Lh}7Rm^T|
zy#>9%X}eOR|H*cKbm{kRB%YApvs9(rO)nbV<?hNbUUI%jyG8x9r0?2;zS(6|uVALp
zZb_ad*_YGp;)UG`<SoGgx^Yyl>IF;9(EJ5UX<~B&aHgny3;2FE+-SX$#I*GA0V9E(
z^!9q?f*DB@mUtC7I+@dZt{B>6>6pErn3(ALt95!-p4l<PupuG=Xu<2V3BX^grsU-0
z|Gms%(etUMNS0X2MKxKxYREyy)>J%!Y@7+mTd-`>suE?uk|FD5IxsQ84jnyk44e)L
zHH4Rg00hk(ot*H8QN~%=CYhqNs!~P|M7sCT2md)I!$C<UIDY*K?>}=Y<&Q=w4+#UU
zrLBnqNfJMb`;S-Ho=#g+DFB(Jp_W(@l{reh3R8v*Tez03YUy|Y^-I;#Ee?!SLQ;CB
zG3<5QDH}~P=-Oikq;=RDi%e0F!Xxzb4l#Rkxn<~Zh(a{U5d%g8^`M&r9XN1YkJC>l
zv&gO<gY}Cs<ccY<(5h04EK&}aRrA}|Oew+<Cqu<iE0iz!_62;{A+*>cW6`oHMNLg(
zl8%;!26=dto(?u}8#~lQ^8+V6Jza=uKP+BfkV`l%J)K?a3B4aXqgsUuQY3$3Jxc+x
zX6cv-zM`@`L7I#-91>ZCt6G`r&a<o0G~<qkKuifc^m_US`k;f(y9of9uT(ZqlN=Hv
zR^YPE9M#Wc;=w)11Rfw{YYGhuCbg&q{l>Pi^+!^<M438S8l*n#oHg=eu!^cm`Aetd
zsNou<!uVk`cOc#Q>G%voz)O=X&FbVt{Ojc5i-@U3I0PU9+h2|jmoL=IK9p?D6sTIE
zuHS7BMxvsoM@T>rjVuBmggoYbS85>|9NpBE8YZ#c8vsjExU}^C-F&X5$9K8yHm)z|
z-P^~w!-aNiQVe#Z+qcW7!!@6TWTV~HCn+HiIpb-??EBuXr}O2-!SVCT)3sI+D(Kl3
z+nq1?Om6m@ZC2geI~X+^VM(0tcL($Q0V~>yKkMu2HN=geR8E~p$r+_;><6pc;cPMR
zH=lWChM8VVHkSi|#QE-TzN^hz3?VlQ6LB7>(dk?PG1&X_h4Hc3o6L09iZu!I3%9NR
zW{-b=eIV)Ut5B~Lg2mY1e|mjI!sB6MBHo_!eZSG~6v8i2r5TPTz$3)PCB$rgjTJ-|
zk$Suc2?^HF(13)2f_i$b(P^#(%d)^Fxw}mu2R$5#u&`6lE8+}WmD=Oye&T)4TOcwn
ztL6N(;CnD~1Rh_jLaxAMCc70bPMh7M?SKPp{@wn*9=}&8G|c1K%$}4bjYz3Wh1y(+
zoYg{oQArrgmWaIT!_r(yi_HcP4b2JY#t2J_NmI_}^Ml&bS3>VkE0l~@B6fEjjE6%Z
zVI)LF-?~k{icsxLWt%D~B~r@4A$+mG#Ys;{)4=izM%~*JyjV+JutY(EXLTNl!&9#@
z<@cB!7%s89+zbE%6P(DM-db<+@fuG{i`(AT)c2b_c2-dS0RavUjf9Jijm!i(X*Li%
z_;1neQP|+%ps2*~z`(@Ei&d9&2zK#BUR|YDej1C1<J_-b|4b)i2zdr##jRUx`8(W@
z;NYXq7tb}tp+){J@AS`1X8u<U>ugK#bMR}hqV-a>#po!XK%H(!_sAHJ$C<_&hmCkF
z?jU2(*@SGcqL!m$>Qr_RID|wD_Ri(e@UinfWz38@N2T`CH;!hH22%oF=j8@t7!k=5
z6<-cp9Sw7Hck_Q2f*(To!wL?M%gY^{c4|n({pkDqcjp_tEPS0}w}+ez`r@!8F|RHg
z?T3>YV!>gLCo8Pq__G%**IH~&&-V8(4lyxsxQ&*Xf|09cysw{+4D<61Nl1F^HYePE
z9zC3+?CjA0F6eN(6tJC0YYanDuhO%TJ$CP>iy-kq7zUH`^78tx3WHNB!>RB4eXMQ=
zuJH|b3@rn-W{c~2!EmfiWo7fn2QMI-%k6Z6rB6mq={Mi;*oeal_!nDb%e$RDT_^4D
zhf!0jSL>8b8H`(@Sqc>?YiergwRwVuMC6*=*~sXW?Oc9;e`Diz9CEVqbMCmg6Bgao
z-Cd{0>%*jWi%|x<F&l2m9vmDT=KIxmOD!#P`zw%O0^5Ic{i-!Png^(;OLK|?_87AG
zy*|!X5=-QDdHnR~P?J-VqVV{6*y-u%*zR7RZ^8O8>GjUe&a%>yocFJGK$kWxED7VV
zc_HR*GZ|0OZnl+^QTQ|(OM(V5{p00kc1nut(Z$A-*CU~zhvW9Purl3;>%-X|rF;|t
zzgC&DkAMRy@UKye*6Ehl?ee4BWSsGINl;!63TTpVG3W~{OiG%{=Bd)?`mbC_NM^<9
zJsxKa5%0rzy9;2yz1_Fwc9F&7%O@c4QNh@wLWS<Xcf_cd#qH(lpcF3*soQRiL!6YA
zP;d8mfq=(ZTv7-N8Tj`0HccrjDJ}o8zZZ+esHv>aynnL0dvTHTv@L9@JlhY0G)pMZ
z*jRgIGb>uLphlhS)cs7sPA*0oe^nu4YU;YPI|vgVetdkaUZYz888|yTi=*$8oRM<4
zzg>G(k_#A2J#N83LvMEaydF+wq8J(?U<pe|7A(0P&mL^Pzh;7f+3wA~)vZ;9c=hO)
zmcipV04pXYCMDd5^cAaGuZ@M9d~kT}b?veT2I$hW`#XKz!<|A;N2kN(=X=lcbbtk<
z-A{5l1VQu5%DvY*nI&s&<o(UjS7iDeCc>J?_5$^HKMW!=7a|auO6TD0>>ZbMca-aA
zyV-s(<>?7=!zb*0d)`9ibEhO?v>Smz+np;&1jOL;G}?WBY_(Xo<)(4jjG-q>hkOl5
zt=7TeH=Q_2q#ULsvtDV(08;3+DN;uX$;h+$Tr5E?Da_916c*X6c6wY^>$cc#aioqb
zeILEtk}oh=2G<*xuTUw!;P)D%qXUTRH5(HCh~#LVth6xNuW$DSaoTQ9=;NSc!2qb~
z6KhNARca8u=h`iYQ@M7grp+dE6zS<W05T-=&nJ7Kk^b@V)uGVE(||o-__PGfMkCZC
z@xs7dXT2K&M&M*lqGm}Uizxs-QdQcdWGdSRp8$-w-DLb!y_$_mv~=Ml00PDc-Q?&W
zHa2!zb~XWs%CV7==ZX;kcziDVfsuINikSMpMR4rws${6-MTJbE;_%$Dc!s_8^$m==
zZ7inqRQSVoo9zqFK}Y~G7aw1<)lzsOrJ%e5mSoY}1-H=vEC37lwV}SAhJpGTLQz!}
z)F+xXOGk%?H{cnfq&R%eRJGOy_O&V$bJWQMt1UgQ?=N}z-(9q9N@55~WOH=*Yn!e;
zGLi>dF87X(E_ReuRLBxXGsGlbAt3>wie?+Ttu}~z4R0$L7$U|RiS+cf7CS~p#?Qk{
zyE7Xb8+`ow`ug9b-}*DzA!1$~PgJ(K#A~J}M{!u(Ytz$Lx?Ufd;pdK>mE<x*#YKT$
z%3SZ8bGI$9-rD@{NT1I~=K?<1q3LhWN2Vz$2ob?2<>gLCQ|}LJc1CrrwY72To`%>Q
zmiv;xQ>(sUZ*AlL&$e{U+cazdo6UZ^kg>b8!<{KAcPl2FXN8CRdVKrjU>u0cOyxBH
zOKh;B0E4Il8i?cdKM796Mut{j_PTv~^lJgYy0YrX=aU~G`)_t6W^qx`f-ZCu*7<pd
zTcnIkECH{$()=E!0zgbclCOTb`O(+c%Vfjryp3d#SE?RC9|{&B?fJyS%6e;|mZC@n
zLis?wwUktNP?t}lKLB7edq2fw^KJ#6A!NLrkX}7?B#$xi>HP4JshOjur2(1OkdTmt
z7lpn3KK57-4-dI?K22iedFj~E`UN<$ZcV*_@I3^oegyL+vX(_lHm=Yw@FJ!JdB?&K
z(9Y&d@)dLB>pg;ovxUKjlTrd^9Rc$Qxx`kg?4+>2OKanLeyC|lZ*#@$(KO*Q!;2?C
zJwLxa!X}(;_4wVEQl*$kL}Tw9ACFq`xO>!Sk*^^iG|;^Ym&oTv;}pzTO2Fe`;^V^u
zje4JNgI^_J!gyQkUSD2st=fqNbNz~x^W!ARMjtN~vIXA5o^Q|3&Rj26Rey4|KO62V
zh(%Mdu{po5HetYt`3m=`vzm?^+<-FEyqiKVQ)O+jkC+%#-xf>GmUs+|ncL&nqbVsd
z()HOJP;d)t;bgQ^i#3$PedE48>~ep;sj!%{$5)V(nVVya*;7qU_LhNyg6f3jw;qXO
zAo9+evAi4_j>QrDSX`(;WMFWKB}#e!x!sG>ABsT8M#am^d)*gw5)BXRxq!h#poi?W
zN|)`cs|X8&VK3<K`CVBRtL2<!AThJ)s%ZTCccP`GQn+-AhkVH`PlovkqB=vveCevq
zPM6ctI^*dqei>BJ&yRO)Hmjl9vr?3AoqYTOCRXXaU%-KV$LD|X-)t(YxMMQ;Kyvbn
zJRx;u<?Y7!&eLE;-IeRZB>@t^AAa?Db9imG!3o9T_ICI0`79bw1$ELr)8Ww`LfQMN
z9x7}IV~#+V`=M-+h{M6#b7xkT8|(gJK^=(lrn2~7XP<AkrZchDnyidtS60^C&SwgY
zQyG#Rgn0{wB_n7UY1%#REj=_>7GzSD6BFQnJ#$z%K5lmL^SW(zc{F(1#1{rtSk=S|
zSk4QHD1F6bSa0^}P%itasYVx%%oT$xawhEk)?Zi%YBqSSr3n`SkR(sA@q2UF-|lOw
zP*<lyw^?lzhUNFY*)JiNnabg5GFm8a4S)bMc#0#Dl9D<&IPlC6u)i|Uw4fH$R#Q{!
zvD@(cxI2y-j>W@YBdn{V>n|)W+2itkczeFPa|SfJ98DG*%pUjl)T=a|_Qo&(WLU_G
z#cF=1oBcqK+q3g?h_`na9)kXQbg{Cev4H{6KdpS?2p~Akl_*TV9cBgwg2(JhM(m<x
zZS{CPT8IzLMMb^3UEXv!<!*MlU9P#^UG3yz(vwPo?6<!M?}9~UT3Tj{?K2Fdv-#FX
zZ~k{(UKdOISx^%(dt}0V(^I|=XE<U?M)6e4)D{QzCX}%RYmFXG>v_Teli6k`L5FME
zf@O*cIqH|GRMs*Wo@{wyWI*Kca%;()twvU-W^BqqUS8hz;$mwe$LC?bOx0@1cfN%Y
z2o4SP6?D6Zrd408)=5vuSk-8M?Dl!_<~5rdbUMOh&{9#>lAd?d?Yq9IudmDXasBLr
zNHIYX>D={Ljw2Zz9W633VUr``a<6S{Od6)=W4k*#82_)>)%8D=Pf)-)vdB<VQM=ga
zAp!(WHeP*=cK<+qt=8$}GMmc6<FvbpTp3z?I6Iy@lFycI^}+%|;R)ZKuJ?9#jY16(
z2?VkdGw}#9O+kY9Z<t7dK(O2N-7~*70Jp>?((u{cW24RKC^nn-{q0RYOW=I1Fg!ID
zNuRK=v6YL8>F-ouetg8AVCDSUrn+k+cu1f~#L(F0oCtfl*<?KU^)VKodzOvG@h}Pp
zQY<+&2^4I2xwyfEJS@t3a&rqBoY+r|%+rY@zQSpVO309*_Fn(~^9S*Km49?3jn%EX
zrslFM7&2Rasay_kn+v4C!xExOAeZKwlDtshX4hK_8fADKw)k8ILYc1TxI>uz;O}o2
zL&KLV9W9le-p9YiY&SQ@#-!6_F>x`W0m~v~n&i;Xu<2}0Mn*w>io|SQziz9gYSi?z
zyRsh_wzdkathuHplW9EcRCJZCwO6}EGN3GH{ka#5)ZvW7=}KpxrLTyLSnKq70rHce
zz_>|A6S34N5ge-5?fKs-&Xkmt9TXIonLREqEG%`b)SxiLY<@ohKDtV?$BSQvw(FhT
zu4fuG6mmLQSvmY(m^c_sZqqqx^x8Q+_QEwwew<#-*$oX1K|$#{-6p4t6D0~>k0%Fb
zXZS0P7KXyYrz!N*0f2pHX<nX~b7M<Oi%9;H@o)^Np9S%Fn?L=*D)j`74`o9QHB!19
zZcS?l`6cm@;J$uy@E)GZ)~b4Vz3g_nzniB@2L96V-~xBJ2qL8(&dxq>gO1!rX|_bZ
z*f==U$&x&7r_ey7+IYRSb0jA85PiGFT+;l!&+9{adS;8oLOCdF=M-OVcHyDocbZ*p
z#(F*yvN%%#kWbGW?f)wetE#Fxp7MW%ePvh_Z`Aj&@TXA(q!CaAq`OOy?hffrX{3au
zrAxX&y1QFIq*=OgNof#R`Wc_+>w8`AeA=1aYiD-OIlq{_?{hObU!U7Tr>MRb#mE2a
zX63dm7j|{Dy1KH|WP{9SsIRlo;pLj9fQpVJE}m9laj}!aVkF{oWgok+a0VYj7O&K6
zknud-*sC=IZz-r@L8s<QPDdCi(ch0VLd66+Ck>6;0%@P?6GvECQgyXsJC8$+_kEEL
zgS(5{ivLDWDXbV78RC~IYDABVKt=sc++;VA-F|i^?ETkzt%4+0LBY+<RBbv>B8-WN
zx&O_ZHyJ$4KPT23ttJvjM_YP>R`vDm$;s1s?L0Q`Z(vpv-abCp`?K;?ct~Q<YR9XK
z-Mi<nn5s(<xvo|@w2B`fy;Z_KpH^F8m3H%cJ7WWumU#gIbV}JBDRHN&IU<U_zD&%_
zMjgI3Oi440p)Uz$s?4O#u7*<yyf}QK8T%Mf*G`vH-M1orW~wn~s4Nn;7>~cPUI&>}
zD>+Kc(qv!nRL|GA<|wCYsH&a~opg6AiL)mYAczj&M%`sEWc_Xihytjo&7@*^GL0uV
zIHaN|d~VLSwPU$;^h^C_zYiWV4ziHk6A)v%oMA&kFOODzmZC^1KQ?;Lemg@zRW*wQ
zG!y?INH4yUTu_8Eh`CE;%y*E|G<yGm>Y3TGy(6RHhTodvv}Vz)bO~GiZ@c;#@rp+-
z?!K;BQ+}M61=#W>kJ9CgxpPuMMP!DkD5`doq^<_+QvGb*j;+{#l;1yC7&Aq777gki
zDH*hSvcKcjG<Q2pjJ7=|!xLE7s^NV!C?;16(hMLCzTNgC9T_&*6%bFPQ>gju<QZg|
z{|G6I^?xXn0th5ug#KGcK7lv}%M&wipI4BeLlLL?c7j+Y-Z3$sJ^<LwVfSr#M9lQA
zt9bo!h)|w&JkmU>S?XT5v_DX{&k|A7=<i1)E0H*=3zhc<RQeb8T1;-_K3H%Wat=7^
zGepl4*&PmqW<EX5O{YA4h8hV!eb`PUt)}U7%0;3IwoWJPn9vg@mO8lfwW)a`Y1WQ`
z6NkP?m3#HjDW<B;VgO3Q)5hY5C)9h_!Wi7wUWEly(?8e_zp!crlU^m=^CHK<Y193c
zB^*ctyTx1_ea;>V&P4f}XxZXBF%*m;_=_1mDF3gW|KCIOCqgPkiPJ}<hn&&Gr(<c<
z7;XZt2crXu7_(DC=X_f0Z-?&yRA5#pkmTX6st4`Gg{w(s0t!-%f8*G#7_b3c!cl9z
z4a^_AVjt<uW8sMIOavz<CrQ@0D1C`i2W_7-c7M(FTKn!qj<%LYaBxUxF=9$!8(6#8
zHB2OXVy<~@=a@p3yRocW^F-x!L2BlJ1x&UR<!SZTzNwIb^mKA^E8XEujQ;Syiyi>R
zGL-eZAfz~!j<JKWk`kd#(D_63Ck&Mu%a@NZJfRyAGYh*Js{d@?-q#VX*FP^W=`rWn
zyJqJ-l2<aFn?yY`jD4$LIkmO5HS;`U8w<ynm=-VmkA{99o5Is)v}IG`BCT?FfvgX&
zU!bEn#&*jUF13GloFC63>-eazudk&gb+0H1<BKV;sQ6AV_d1@dC1c~?GwAE%<#_>G
zS{kOq2ZcPPf?nr);eq$RTk7i6Xz(<p{Y`Zwz4*mtSW*&0Y21j5X07QXIG$nnGcLYz
zroxjj2FyhUc<lR-!r()-uDi~nM!3UBd;lJl<Cb$x_>a+$Sam?-fm1yCl)y~If2|%A
zhMFO&1m@<(64JPDr0}4&DkU(8)?EvaK3(*u7u6!#D#6=3CfH_fDG<%KzDqf&?2$hw
zhEO2%tYQ4F;aW#O&tC%_MY_{_t{O+rxfj|8tME^x9I!`R$cO4G<O<cwXBm<rlqn+N
z2#{$I*qncss0c9Wl(T)Wj}4M7W*s3(as$Ob;7_yGTzoMHZUT?4s8q5p@WE&h9}$0H
z$~Vj#4q^pU8sJ7xfU{$R3<OdIi|6&AbCE{hvIZDd`-AvWW72PGYFee=s^+ibsX|Y%
zZDElwb$XK#kUvc+d|P7F-O$i*t$~qDwexf;(MG+<Bde4tw8+bLI#S)`9RkQ6uQb{r
zN>oQbe&uhBlL8oCVv_^)-4Yqi8};25*C%vbdI(=UEOOvKU6O@PAC<hGAFl~u5a0V3
zle6=VYbepE_>rnAR3Eq`dmwR6=AtYFrj@2G@6^K&?GIBl4}ZpI%AihgnCv;ZEPHf(
z)INp<prfmN>tBR<>hh!0ThF52oHHW>7_2${g^?|KI4&e^fBN|OAd>(e5GcP}BOP0t
zN=Pn0zdWX+(||7OjQ8XVxqJAW*@#?HX8b4R$KV)Z<v&Cj_ev>T$BX~!J>BsJb%!*Q
z%cb~PbIo7r+*#A6rV<0en!3tk14;Hw;jk2KXd}1n8u^NlT~$iYVm){nh@1Rp6u7u2
zJ*{6Q^Y5-t<O|jO{r%I6Lc})*B8foN#fDABVU8{?Q>iu2KkH1s`;KJjjQ14+5<tbz
zpJtMJdg_#H;Y=>-b5+sZ-QC&Q>HN_2>({U0M7r2l!rpt6dBmZeZz%)deD85l-g9{r
z>9@J<&y=bY5)zu$rn3IzH2;a4r-C42ka8j4-PmwCn5%S#51uK`O4pH6Ciqec@rEMx
z4CB+StgiOw=Rfw2J{uH+$tSZ^j;G-OT%Dj2QZH6ITIgDp@wSkPCT;XOm<xONZZkf<
zdfs_vwOj|44GEk4>)cbs1R|ov8UJAJ<qZO9BQ62`&Ctd*UK!fz1QD~r=+$AQTB7k5
z@%<;?OLscy2Cp~Eje-!U;zzcRWLq0wuPA@e`3)+jjv_&FdtqqLD2zQ$`jGFDfQXCS
zdFidJcH(Y^!z1GnTG}Qe2sBu5fe!hr)#7ZJCsfoA0UQto1I9-TzQ4EvEqdpYaU)eJ
z>R8_eUy_~iR8FqkWF~O~IBFyn1|v;T?>(;2fl58aZ2mCr=pXpUW+H0}Y8*VKT&ik%
z4|&I{EiXqFXp!QwkRH(DKc8qColM3oH>J5>gc9kV?u(s|8$=mlsEb&oFmJO#pyk8j
zR+*tS0mwlD{*N661!f;UpeVxBO5JwHv%oUDI6wbA5=Jb_M1U!qKoB_)`cfG;Sd6NN
zEy`k1;5nJ0*ZJ1)&BZPev!1z?RZ4dDzd83OU3cS)i)l2n|2o0J4lbES{#@P)3@o4r
zQpth^Z%QnMiz2BiR8NJAjvgq6-l>RbkU-<=;_@2~|F>RarIy_ux1=fnp2M(u_g%7M
zvI#Ny(9ItrNC0#wF2#;GRJBxtOOebK0VWN;$Ypa?+q+i><|B3$;?$w<<m6B2Xk&;)
zI`rbI68qwEuDe(K9#;H9uMT#n%hYLN^KY;AT{kB4PD@JW6NT5H&#;ZpQM9VVUY36?
z)?Juk)d@ra7Mdu!Q=qJ=Ln1zXnL>jEFU^c5Xo1N#qww}K1Z(-?sPyPnWt3LrSe7z?
z%D;HJ#ZHLdk1;?D@Z^dP9b8$HawQpCU?dj1Q0JlRAa;E2uPE%#X?Wg5FWv~MYhc%R
zzrl13(CVMBKeJj~DBHH*d1JW=;dyv*b;(2yOebuHNw&0;wRyzfIE#GL3!L2#(F#gR
zGNJVC(bYv}>v7I4g+v9J6tsL=jek#!{!BdlOkugndI>uauV)i^v>w}XU->Xx9Z@BW
z0^IIf2~oeea~8>nA6K{uY<K%_y_F0Nda}ETab3GD|L>Pbe`(=9I1LJ8rvm8z9Iv)R
zA_RP{4i8+T-vrY~;6)C+j+bE~R3|7@D;0S}z?&SF4ZD1GSyC<{Gb|QgGHSW)Ph0%{
z5q@)X0|^kL!4vjHu(7bP@bGvn)>)wE-Qrbil{?H=Wf@ja3=hZ4&|qL-tgWqeb#*Z$
z+0K?}*4Ea-hhis2M=MzUuuuZOef#!r{9j*R;8Uk@F9Zt<D+W%;tVcjbCTPD<1JXhq
z%?)Xi!B7mv?pVgZr)G|hC;YBE3K=|#G<YvioI%6*Z-K?bMX=&m?|0O6bojp9{vFQ}
zWHo4WoBl4_;b#J-HF#23k>cI`#RMD<e~Tv@Wb|)ZzP<h7MsJY1ni_pX-&%+j%g+%q
z4o@d*8JU%h-WxA3D%=X4*7N1X`aAz~SrxIKj+5?cr4Nf#i;M(bH#ZI+8-J^37`D1t
z9PUl27b{>q!z9HcDlRDjA{ba0NZEZotz~{fA0LdmJdq&1)!mN*u7lWJGxNOlmd@^V
z+w+H!Mv56%uzX1afzQvLVct6Qqvn?UZD@$g&Fz6gt#oxAe;Q6WX9;+8kWoJEC|38D
zKO3K{W*uRh6pFyY+GWh|n;y{jpoMji2z+_gp7Yg)yQc;KT=*f-9KS&#mO(7cQwg-x
z#35pU&kNQ643A8Jm{=G9lr-y!U{-i|t`T_Z#8Q>ILC8oM&A60qTUu2+zL3e>yuFlJ
zdo_-$LlUh#C>GIK8f<ac$YssXdaik8L3Jf($Vm!$qOP`2+<xl0{lPQqQO{2clc5uu
z{n8Ve12j7XZwuL?{=mXe#F((ekt+1ZL#4rrNI2mnnyAxb&g2gh_QnQ!CIO)R8gFWB
z>hOe*(!b%im6ooOa#kM*=&;~OPR!?$+uNW-8)DPB@B9pFz(5HE+4^F4!l>0{d!^Mi
zBqYSr(o)dl5G0X)@bFEL0YlR9TBjf#ofQ~mhouIuv)>^yG$7k7b$DGM&fw1}MfCOb
z+U(|8(iF5}8NUk)3o|n_Q;PaksFhAnPy71%+S}VlL_}0nRQwyHs+1*Asas#vMf!Zm
zxlu1GBSSuchV^K7XGgAZI+~1EjldmD|CW}PBt~s5P0daz?dmCO@ML9WW!C8|tgO`~
zCI2_KcB$EMeKd`eh(+HMOi)g%@vk59-4Euxe0)w8YJ;f0HZ*XhDR_WyArJ`gyRHuA
zPv$B=UWQNrxRC?PO%5<?F6r1;6rz6jOO1B&a&l|3u$ygdqyG?h>mA<Q^i&%oHZUN!
zrDX5^=0f!8FKntmY$8+G=l4u$=z**mu>=fVj4JVc^wkz393NTaW@~VJ1Y42Ss1*<B
zN*7rjo4wpgVjN57$>MNl0KR=o&gS>I3Tt&$rV#Wvy1kT;j?pOI-nQ$R#kK@J<=NSp
z&*$S6&~h)iA514CA_oSkCnSLEi)9;8*Rez6d~vGMC0W`M`Vx;A37;-k)T1{y;O86?
z6p4y@UnGh|IgS7Yt>BqMd?mA~F3__xu`MLLIZ?2%c(D*;kZKqU((s+lJ6AX=Dv%|*
zF`hX9Z0vAXSjeM*k~}ZZnH;cR54a#h8wwcBG^zv$7Wn7H2Y(&UGGiU+HQOJR`|Ie;
zt@FMJeJ}TVa8gWd;}9G9*43k_#+$hcrp3r1gQT+nOae5A3*pT7;is2DHO4bs<PJQR
zS;5@saa4^ZJXUci8k#189`K|j<4?~L>6|H+G>c&lYaOlGMFAE@j<R@|A@_AfHhNUJ
z9iC_6RJb~NdJzMrLD)>V=*KIq_(VjzfByVAI_mVf{uF9*{=a?GUWxdorl*&w(7zJ(
zTgk;UEQU4OFLHpH$H*vOsv-5^gEbeaUl3wD#mG8+d}PGuP3dWaqUy|Sxpq)sAeaeZ
za8D_zP{Zo5&+Jq2G->hiFK}@uixkOX;Gnhz^Va+NI4e1s$7-BBB0m&|%;WNpW`LLz
zNZ}x4-`?GY1qV0Sz@%1HdilY_M@!sRR=YT4JRqR{-B(|`KWkd3IZTX-a>(GtDx9`4
z@*CD>S1;8t8;WwiJcmGcKoIT>9c05M;rIig*DPD8GRSDQ{STnLJovmb^A3<vR5q%&
zO&Xnc`Sa~v`_&;5P^iXl`vYCs$Oy2WEmC~{9tqgm*|NVs;tiytRm`-uFzY{==PXig
zZm74jwA$U-R8>_);(Nx&LV&&|#hE{EyKYHNn&n<f4u~;TPF*6|uPD&an07lD`z?<K
z2U8c;Ey=Ywie{&N9n0!}yK1IHS?pjx8J?)~iN|9fZ|({I8NS$oR*4zfaR&d7TkaMu
zjG)jOJMH>$rRrN;yr?SuL6)q3Xy9*OokqNVV9Ny;Q;a2Sz4>=qEI=<K8~kv`?&Cux
z8#e*~JdT4%R44ysiWsz)Gc5@A{4G7~3PMCxpC&-iqdy2XajGivv+*n!Xp8r1bIM|2
z@p%Uuc6@t5ydTslG?h3Mm-!Xxzvp<lj+CZPBILl~QM^KE*F*BEe;kQmI-IYk<}-|5
zQ%g%JmCa<m>kC-sf^K^%Zf;!NKfH<_xD$t*Ge5kJmn-z{6rrIp?|~xWd^**uYyxp3
zmQqwnP7ah)CMG7BA*SP*{ELf=AO)At<}c}r-N3V?p}Rd^FZ!Vgg@tcfWt7voWN8!g
zx`&-KyNjbQvuI?=hj2cF*@q-nJ@0?DXf-!CM?UmGXH5mHQ033hSlgX`co{ihT8psI
zO3o8NwltnMD!1r~E_@iA@_g$xyRZ7?Ta<0XS)aVAX?|qnh!NeLZDGUI=PdFUfLr)m
z<onX+ZE+UcJvr=}atk#WCrerPxs3c@XmxeNzf6X=yOa5+1r6Z*2E;5e*1rr5e`hn{
z*d&rcMW`!6er}h4O+PNs99cYfsc;nSTaU$dlrwCPQGSZR!IZF^t3jagaO2o5CjY&D
zBj`q(Bix_NYyu5TX5WK%t&Fd>6w@s-g(~=}_<R6;Ev@oqx>Wwl^6(8Oj-H&qw&Ky`
z5)qO(7oP$i>CcdMD8+7W)YOYQ@!E=%%`Pr#n<#!lfx0hr=X>n>#S%b`G0VmMe}q%t
zFwt}Mny9Z22fk0+^1zube8`8A<Sb-mWo>M1oSoUL(->J<=l9)g8{6{p1C3x)Q&awr
zH@hP#tYDb3Q&VLUzJtnIMJ2Ae`PwSy3n4LaYDUI#Zb+tuu9cM)8CixwyT{Gl-N?2J
z$T0Eo?8ZG%cC$h7Gh`aK1d_E(KDU2u8uiB5qFP%)u{{B*84VSc(;-TK6@mdag?5jl
zAEwUw`YTW*<X<BrULh;X$o*`JV8oS`yFHHdOih1Rer$#yBeP>)Twgz3&KteN9Jo4K
zPLeA$tae;&yWEEr!(cF0!wygQAdX>;mG0d5`0@Gn2zX@UrU1kbIhurj^CVvhwUm{~
z6-;#?U%$ugQcP$1SSzlpT5CTLK`SDHlc@W~+|j{e_Q&$wOsi|-j7=joJ(cm|ucTk+
z=i7|h-YxCCSE==pBOR1}shp14NlBWOq$q=eRN_5s-v6ej2^3CGDl*ECRE&-`Y?;F$
zlhVqWd*{7q{#l2TrZsgacIDdblUDFn5|~ar?sql5hFFr*ce|TNz=9Qit7uc5VYa@-
z+Y*h_OE-@-^5Zjn>sJFI=iW%9OU=^np6_A6`6D2muk@P4ieotCiR$s#0b>e*f=H{h
zQ>RJmo<7K2h4JphE`a33=J&eUjO^eLg%roryQjBvbb}gQhiaha(CVr{BvT13=L+tp
z-_zFqCV@+!$HvJcpgbk@ZKRGo)}(Fk*vqE-LGp#6mUe33^h%t%x8&CAnV;^+-~E9p
zuHdjd`CVdd?X3+cQ1d=$3iJ@|WYaczx&&=bq2Xkq(17F4jTvWJE|k*Q$x{5!hxE&B
z!rpYORAgjipcKx&(n)rAcb7!Rc_oDSH|T#ni%igiX~-Fr(i=Sipz1aojB540aZymf
z4mB|}G?WO%UhMkf1L8_7IsfmYqt#S~jH3N#6arMiOHB^tQ`VznV?$tq+Rarci#`wl
zzF)rZ$4H<Lo7c%E(pKs<+D_)a*VWYp0p?$ePhrrz>(=-6_h)5hYB0?1O%=EctbTp*
zhE^%l+R~DiFw*D*KM)r*4CCYDzG&Q}iX+L)pq+yaL=sJ83%ARsuu%FT@}vsVguGmA
zZ1!{C2Z6|@&!SzbktGOfiPj5{o|LkMhClKm<(8G%f^rVK|Hr^UrBQb_%`oUHLE#71
zL==S}m@2=v&p-bb(Yn8Py)BStUT#tZ>8IA71mF|o*VWZz{Y*zk2PV>>Cv$+tQk!P^
z!`+olc^S~t*Vos$1LeMd^xB^$Vl`^ApJx%FHrYPk1~&FKjLi&~3j_rC78VvX)cF*<
z%NU<;>~ET=n0R}8>geiPh<Fp=5o+nEoL*Mw;?pXYS+eW!2+&#@KRxC=Bc81P>=<eS
z&7W3R`?S`v_=e{y`qi)Kl%b6WbDaWYN?sSaO<T83h3E*NeC*xErM`D~C=ZFmox2`e
z$5$j=spcpH?`X0u_X{_PWm47H$g(Md8SepNq-Oxy2H^QbS$1`xAW=<h<X?akn-3~W
zPgdbBUj}8G4x}6_Q~nsv8JArgPo|M`7Gd8ci#6!b@@C7t9;R1vwh8gt-oU&#Jo?7A
zG5sks?|rmXzjLM-RW5ym)jm5m%(js)Mx9`wd&F5^Rds6Z%N^=-;>ixl$TkM-2oOpb
z85lVD{tz#m3!n;-4>2+_UYwt|xgU6dJ}U%^=y<Un4LDx!UN6&R#P0t$joSQY9E(BQ
zsV8QL_}Yv%8fCJ@$jHd&lSNpwc6HOya(9yJu~F3&DnO&Fs@G;Ql3Zobjv5-OC67}5
zF8fmHh%6-&?vLETflEq6#KA*8&80H4`M=GjHUf|j6o%Tr4T)Wre6?HQZ+<lC=l-x+
zy%>}_IAu&qB(b*l3PwDx(`lI&YEE8Z8SBZLIYp-ZN;cts-+XfL%uR-@Q)c!jx{w1|
z)E^;vN4`xQZBosPy~_?Sa$8IUaXR<hf9Lb%4^FrozAvaXb`1>A{iAuYy2Ei%dh6^d
z+zU1jQ1e$?oZ+Bz(^FMtx0$9%pm`S|r=XzU{E4EUt+%%qMA#j^7)s1!3$L}jXCn86
zr&XWC{A;Di0Jf-*kbxNzPSVLG9xb7Rqh-g_+U8OuY1kLhTXd&;2M=L&lr<kT?DCS5
zg(im#rQ-g_tSLU?P<HHoXL4=-n*?(?xnENS(m0rXygV;)iBm8CmWG8%TUc!O2BEQI
zCk}7N#KaJXwzjr{g%sl#=|1{zMbi}@tZtvktcPyEQQh$DgzoOT{wqfQClZ)H5$=yP
z^<se9=8Yl!6XB`b=jsDiG2DoR1dy&qEb5w@^Y89%QPEJ(9|H+wAyAFi`_rwQz@AOI
z8S$T^`!(T})v?i0g`r<}v_8k3AM{1M&VQ^f>LN~<lLy%z(6FIT(Q$VI`Ya>qA9Z{|
z5`5A=W$*Q&0vQv`h4Qkp$2^V-0?AI_n{yCCjJ}+OsL<RJQ6f(0{NUY?C*D>g{QH8s
zPPsw`78b(r52#73tSGO8gT<*8VU7)T=qQ1M_I(|!ZF-fo>xTY8FT{RV&oC2f@p|`)
z1@K|;p)z58MaG7Hhi(ESrB+CWy7$qIfA8sZp7A9UeTr720@&P`3)zR#rn^%&{G$)S
zyC?UrO%y1du=~Lxzd;~QdlNvoa&>WeZNyki9b8veCnO|9x<Y}d;SA*U>qsI{w6%7(
z^^j|A(-*_+)9*7(?i^L$8V=^bqhoAL!VCDGq|7MtwXCCzubN|hVl9OR#ak*PEoH}M
z_e~KEw8h0DEoO>?>7wNn!#Fi$L1^-=4pSUN0y)&?vMg#v!I6wLTm=(a*rmXtLI9xB
zD7AfT_2EN&`?f1ODsRCj#SnMPfAewJL2)+^<FWW>c76$ns}!KKfb*@DZSC&zy8qGe
z@wt2PMykT7du?saFi++5>?L0K2PVRLrjd55f8)ogx^8wdu!vYDJCqZYq*cG^v(U+^
z6~kty_s)^js@b)1HFPaDm90{Wwu<CJ@OpaWOe+hyy_KH0M9cLx*GB2&SiUvePNU*t
zp|qa<RnDmX#Lsi%#Q1decDwMsQ5Y*l8>0M^5i)LZf^y-m=r87p5&99Q8mA4uEt?~e
zi~eed(L-p@^A&zBk7X-HR2GVP=hsvS&#~giPk!QRxmIZm4%@$!ld}{A>d$VAc0|Tz
z1fnZPZzE%J(Ap(6&~E?zhlFg-N*Fm`WgzHvzO}HRQ>&91AAbgBQwFc&r-ho$;Y2$1
zVx>Zx^jPA`vN8c*#A!G_-O9>J=yS^B?d?X_-SGnHSP`EqCKeW@QVqY$S?$fuO|X0-
z37Neg@4Yg39He5%Z{&<*63{@E)cN_ONikz<X9veqWW(uvbHCyKZ=$-=c`ZJX`os<2
zZR@h9eS0hOrdMBjfE~7ii1fj+P&bURZg=?aMdkgn>(@s2n$EMomSMXXimMqABr!-d
z>>%`!^f$Tqfjj5(aebFh`w6irke-}jX}BJaK$?f8{!n-ib!+S5BL>>LKnT?AI@Z_U
z-j6f3q_h@B+mHhQ2NTr~XMcZRBG2o|I6%!54kl2ZULrEw9m$9I1qF>-UEYd_Jc6pu
z($W%CmhLVtq};aOqN5dKUkQWOaPGS-etJ=41X%J3gHa@J2r#uP^*|k|qqDHl8&p|Q
z0YW)0Xkj-tRP^-PKmpmRFJjUc>~np5wA`%BL`c?^6c^{TH%VQog%xd$OEG#RukkkQ
z_w#SbMAlrtl&C4&KDKGe?=W4<HA<;qOq{gqwGK3rr+>T(oU*Zrv4O+dlyy!Di~S$~
zd3pS(4JuzQ{bt9SE2~f&I`Cg1KlVtBHD^T6*UaDcRBXX5brF4-l4p^972j6E44Vv@
zw9OQ^H|n3$zSJZXWgdr+b25wI-^a#v>Q!cQTE#?1k0rd72jj;Ns+#3yM?nDrkAu0f
zl@%dc+9ELW;3kkYzO>Y4HWb4&A|)jy;{Eq)k&UC{iBgup@b)<vaR1X@G%YPHet!Pz
z<JHKhs2|QN>+4Uy2O?j`|E%d{N)^<uQ~^Z-R|T<E>T^i@{iN$!c5tV`yvLK1;^7V>
z8Hv>T1~IvU!1O@3E7pWH<g|SPKlpo%nl^XE*iSi!*|e=hKHY-%6<5+l7I?1Y@nRdr
zu!+0nJE=CwP{FW=G+%Onfjg=8z<aRjVA1T$3H-S-(}THgQWdRQU?Gy&2f4?79d`WG
z4M&Uf7iA*+>$9^{V(<ArIXDP|#UCK1qO0o#il@bTs~nLp=_bU%xFdDG$28<aM9g~M
zGBOxbMsCcp#q(5(VI-o1f{7`~$=L$#pr~iVhLx%p+djEQK*;F^OsDrw9dQLh+>QvQ
zUjpZhhF7bnwMnfG>!)4NS<j1kw~OOM!R<dB%+|*u?ekOB1;tr(^7TN?Df~azm@$Ww
z*=IxaVtlwX8vx&B1)l_c5kPe*>0){ubo9At?aQkZ8dnqmD{nh`k=K*f|M&5PUuT!0
z!f+WfGQFI1d1Ee~+;`~1<$In0jI|`D1MA*l0nFCG`}>UfDt7;|pC51;3e`U1@5RDB
z&CSi<zkl!I!Vv>MT522_8)If=-NneD`U*-|FoN%re&N$8(a_Pkk`FoS7b|7G67l`%
zOdbQbu(0SzhdL&jq!ugZ2=MW(ba^E{C-Cx_sh~;D5%ASJZ$Wg?W{;Wa{~bT${bXm&
z9J5KPM@Aj3peR3~^krZ2Mx#q*O`G<Ee8zg0U*eB&6(;@o%7$dUcro+0Rt(w6aN@`B
z^aUB3hqEIo%(HWSE@zKsVX~QSS5B?oH*$g_O}tfx{p^`PhCQaQ!rwj59Lqw-@w>ZK
zjDce^VCjV~ZxwY_j8<&K?T_;Iiu%{!e|Ycbmz5f#_rjAH=&!q7YQ<cC#RkBc&{fPP
zKvIPOX$phVpU;{Rr;Z|J3Jgi4c#=QOIr<$%PB?NDNC8}N-&^TMsf#N9SA0K)LpVas
zxErJt!eui{rr$YZ?@saHXQ-kK&?TzaCV3|(V-#X4z6~|8e9a%mmkdWIpP$rAHhV!u
zO^q7|DO7s<QsxJQ{V6|rj=^2dwYF7Ueb`?^29sXA$At-^R4@-grIC_DF-<ab$oInU
zpcF&LppU4?+G!#DzhMHUfBy{`Nd376z77aKR0MbK4>q1~fc4f_ZyQrzc>&-iE2;FM
JO58Z`e*ohHbzA@d
new file mode 100644
index 0000000000000000000000000000000000000000..57d482e5eefe37bc395efc5e8eec876aecd8fb33
GIT binary patch
literal 31811
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
new file mode 100644
index 0000000000000000000000000000000000000000..419c06fb960b0b665791c90044a78621616a4cb8
GIT binary patch
literal 165
zc%17D@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&i3a$DxTeiKV?6WB%rpNP(#|lX
z{f7XTR~%D;3fN16{DL7O3{u|AZa^UmPZ!4!iE!1^jzSC$EX<BdumAhsJ17$(uQF>7
z>#2$@InOtpuqyg8<+R}9g-+|v&13&5`dCp`{|95_8^+nQkC>(b&0z3!^>bP0l+XkK
DO07OF
new file mode 100644
index 0000000000000000000000000000000000000000..df392c5ce789c7dc93b017251876eeb8b7e416c2
GIT binary patch
literal 58102
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
new file mode 100644
index 0000000000000000000000000000000000000000..d2e6a5180d31e22c4a2b43b87227db08c8c7160c
GIT binary patch
literal 68953
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
P!1JGqj&g;PRp|c*q&kgr
new file mode 100644
index 0000000000000000000000000000000000000000..abb8a72f3080e174d2c957688686bbef9732aad1
GIT binary patch
literal 60421
zc$_R+bzBtR*Is%_mk^ea?vf4(>26rMTe=%1R&wcvMY@&-X~d;Fq>*kUq(ndweth50
zduQg(Id}fLXU_AS^L%DvwKNp*aVT&A006$SlAI0zfcl?(21I?HwL`}UpKsV6N=DuQ
z050)=7YZO34h8^FR^G|VYH2yT`?z~Mx_i(n%gWMvc)8oZbFl*e0>0O#e03)F1P{I4
z6f475sR5V7dqjpu#6ru_BY_6N5Oz#euaArxKg{0uuHUqW=)RO6P{(>gYopznRjxD<
zGNY0sJYg@URr0KqP4*T^k}B%FL*f?P8g1N$nrj{A^_;VYos1TG-52Xu3xBS1Em!tV
z7x+=Wa7(7IU)NOcx5)t5ILPfe*Al<Byj5jxd`I<Xp4vQMcrydf=>{`~Gx=Dq2Cb?k
zMxEAI_79O9nUc|ZIsOhoGXBIEeN2T^6Y(W!vT6L?%jC6&H$($iwC5`lFVf#_!Pk#X
z3Xj6<Zn?<P=`7oScH)m2ST0_nVISjpbn3f1ejAIN_ISjuoEqqQ4-(Rp4)WWv>*>Ah
zy4cwsSQU*048*Sf^RprVc<uqz7WyuR8I-!Am$y7r^-<gP4ux*LtXB9D32y_jFDV`u
z6onNfx>I=1hPAl?dsZT-#O=lXHm~^JZZCuDepqhEvXSh>@uAad3yyV^>3rLIJMN2l
ziT6@u?MlBIiN~`^zzwnfIcmpmj{v8SHp<0XKj?;C35jD_`aJDUZ5TEA>Y{Si{cVdd
zui$9G*z`9xa$RYjvTx}K=^1dx1ApwWqd{qSe)F_8N;>KQfU`9K;3EV8{8j@1!hb#c
z%>clUTL6Hk3jiP|xp0pndiKke<)rljzMq=;!%5_Se}F8k6AK-hks8jXdXu7~py5P>
zRa%m2fA|#l$w<7P{O5!y99vJW7oEL0j8>UZdFox($4O6n7T-$5CXFEfDzTptNJ8^4
z^uo=rysNXT^ElMv{ZVb(Mg(|}Re?878zzH2Tu%FcmNiLa^#8BoQCpLg{AX9Fq~5=P
zCR>3!>lmOKt|C(%lTPyBfA5%qD6_t1&e_CJ5d8GPgZiFrM@GpMf8Z(p$=W9<)_aQl
z5UFWJPK*9X_My0Kn*0!cdE~yL`LwUR1y|&hhk_J<xq<HDJXr~KhffD-LjQ^z+Z#83
zZ45kkJxRJvHQm<}(}C&MSjE9nDY?11`T3JzF?l=m-B2uoKyh=}6Jt=U6<Bn|s6%uG
z#tQ}6L`k!iz`P0Yt2JxT=ZyD&bX!#DnU<%UT%fhrK!Da3I^!MoA)I$AdyA|0#%@O&
z^njUDN7cjgq2M2uk}1wdK+c_HYS$;=t4YOw3YuX&nZT5n%Je$T+9&{!EZl2|wIrQy
zZZ#<gmDw<r(I`ckWC2b&KO@-B!+QAewdoU~Og6|U#a5Z`t0;l#lCPQYgC?0Pgl>)%
zY@<vcM{h&oTj6ac?9*SE?u8k4SO303JCMVDnV7i>$4U;EvVZhC*URZ>o(FFzd--#v
zl^Ok<<79^e$$k%rRtn4@$I}NC@fac}c8*e9uj-ENa9ixY9IB}7@M0cnuWMaA^UE>v
zANlp8bEC;_yht|sF?XrmYV}jGja?Jxljv5_#{Ti*mqR0md<+1UPjt!9woi}*qK+Kq
zHHJas0DyVhXXfz?K`o7#NjVx>Q)@uQBZkaC8zj(bAPh{!x}V!Cuy7F|xKMpB-Z@=O
zk=x5^lm6F2+&u)6O-4nenv3SKg&GASo2>!xxLF^viU_?hOMP5mY>3CAgE2_;j^~iQ
zaaz^`0499+sX$k<N@!$!we}>PO@smuV<k;YVYC*ck-|VbR@=7AnfyqAjctp`9G{MH
zn`;Vn!Qul(AzFL;lD5TprEll)v4lp_!HxF%mcZCgCiE2|mv^E+YF7`+Rbo?0AY$x^
z)NFMK#LfM$un0n-G%5|ZEQYi-WS%6Um2Kn5DEVmZ_q|r7QJ__>B?;AAa~(Z>i*r67
zhO0O*9Uj<9j<I+|C&b#+UPECVPKB*Bzlx};Wn*Wrs;Ps7vhS<aj7HrKPONEPIFRrb
z^-i~M+b92s9ei#5kq!Xmp@pRkmY0@S>>ad>e6En&$Tsn(dCgtVS$!2C4$~QuJ~ide
z6jKam8lv6%cfqO~r`7*n1_0!d2@4yMYc#6y%d1g>>r7T7Br_<|`EfYg2M7<#&xR@W
z{likAkE9s9eH&tNJsMispXY$5mZ<HLr++<s%F-WI-Xs1S6*V8AKOBy})}~Y;%HL4{
z=9dhX^bD3noy^>lj_2?qwTH3`q`d)&VX;gyJap))O^h6=)=Ze7{83U{X)14gG-fKg
z#N^&&d!7ROJMrA5lAtxjQc0D$x-LFKcS?lJdl{)6*k3GAUmn#)BZaaR!_Yi2B^?7b
z^#~-kA=qcLMnfZ@XnSz@*x*Uf>&vx4pjgxuqv$Bcg8PCs?h~O~;VynR=0|ZCk^le_
zeRanLbBSoy1^ZG6cRBC<IY}kf=b(b6ZJ&jOH?LZJr#gd@=4u1Gqnvmm71pg|EKMRN
zRRx(e8e1BckwnF@UM*8b2Kwga`o{Y=h=k<=3SvBM1|oani?E5xI9^or)&NQ-P9_dz
zP36oY>8R?P`OJ(A8nO3lKRmSifiNg)6Hn$#a&IU|pM;Hj!>Lh)2n7>UE*h(U*LP`g
zJ|iQeYu!x+Un<)&)>8q02)ql6^^N3Zmg|e*QDDec*u4OSh`1Q506{Y73?^{1!zc+R
z?r+o%7=z;UX#Ga#HHaEcF0R^oe_fTFhUUw#nn6NmP<MccxCcp}Yl?FC#V#=|tO05l
z&uQ{fhNog;#z%GzybE%g!>uF+0v>|%{|bAEI0|6ANSXOK5uwfcNw7HFb1TfYG}<V%
zbZ%PfUmB=MhulW80AWZH3-XLPo@0z1X&MmKQVEq@aB5K@BDIDV>6$HJ(?wYsa>g+#
zYrizFUt-~C0$;c34z2(ElY2ayI!omLMG*o~U&0?_-Ib#klD`c4f&|dHH5%^hxKP(C
zrp7Q58>QHNR3cSwwPYlWUaehriCb{vDI~#Df#m-Q>0Bxalt3JR6DX)Vi7Mh(A@`6H
zM{;ZHF6Me%VtP&mT7FYdu^o9WtB^H8C{-CtBL9W;YM0pQG)n7e)@8yzlHwlYqgx*j
zP<kfJyW1*0%4`BAfHD-$;{kBe8uCGMB8?};h|4T1*Dkac&h+y&lKQv3L`}IX#&^A(
z%_nDk-N10K`54+LfObBDx?uIkZ`*d)CYQv=Eg0Vz)GwCMdNMUc>ofTQp$p&DR#a9z
zZ(Sv8e0;p7l1e&bv7xPesut^<PnU#bebO<e$F?~!e>{%@5uIPxzq`g_L1%rp&DP0n
zpVHD&xS-cvg0RIVU$dP}Tdm>CYBO!yQN<WW<=i?0{Y)BBACJwRFN4ELq9?Cljd$(s
zHK(NcZ+w3)H>xTGWiB|)`6fg=6N#@WMu&N802RRGQQ<rU+zEwkk=|2yDx&x%WO%G)
zQAoPxBbuP_Es|nZgCsrLh!Y-Ki02qS#38*H>5N61QNaLxpm-w#_m%=;wCpH-lsq1H
zb*d6rV_-%{>-)x-ORHpQ%VRm@j{D+$MY1xVHH?XQ=*97-!*oyN%?)>B@84gi`no3~
z<~ng8MiwT5SK^k#bzi3b1j)n{k+ZQWOLY0WrsP8oYc@XzIz!aeOUY9_g<M9E5q-sR
zh+_r3!pSdI>Ps)>6Q`mH5#IB!xZW6>oCpX+>Zp)AAhGF&6JK#~vYxKiC#~CO*jCjP
zpI-FJ9)1#*(P5-lP30u~2qGuWY46_1`V{EByyB1`{^VkiuR2$$x$vB?C*L6T<@Y|a
zWl_B%Xxm|csehzJN@aP`;3%04+>JueMbrXC!)uJ3R-@1M+s<!&R0W(q>=zA%d%S{2
z|5c%wU=II6LZ2>QvvToGi-dHvL|JG1U>&n8l23)4pH+|*!v(MvHZaM`gO8U~*BK(&
zHg|%!Z9o2UqtQ0Jf7ub*sVNB6-Z&@T!EYleE~gz3nQfmwyPoe7ck}mZN(d7SaEDPw
zwTqXf>kQ?l<7g9?J5b|W2d2NndnkS9<m+p<`ui1;?#{<ulssnLGV`ptGtVwTb(?um
z2o8hVb16}=mg)Ompg;NPpPRn@K}-sRm$B`_;^Jdd;PqZS_rImDkD=?nOY(wtCY-60
z2-Y~;7Q-ZJuC<28isu{@J$5qLJ7}G7U6K4MAv1D#lbMw@S@4unY>4@Sf-m5rq1APj
z64MSA#htCy0~4W3oj$w?kWf}0eIJQMbOC@{so*<l_4D94dBoBIo8;X*WS7`vCa8y5
z1$|Wh(Tndch@^N@tr5Y!S1QI3Neob4g)mmZVr=@6*I^7_&B$%=kZk)(FPuii|IqK_
zi=|?jCKTbmJ+^l9@DtuC1bXUN!^ElmeSI-@spQFo27hj?kdLxq`#D*!SI|%!hN*3O
zsLu_Xd6=JMcF?@P>YyJFtTi_0d$;ysBVQIjj)!8tetIvKtmpc1ZQ-r!XI8$HQdQ=}
z_@t!O=36Oq^Xh)Z#LP?sTBvqqf_lYg_j77r->KOq6<TfeNR~StJV)(xjaREQ;(C^M
z-y|Or0>nRk|Nf?Jm~19iRME28==a(B-^(@4PQPGwCc!BuU4r_zcMsR~iFrQMnN0M`
zN`2X&#AKA^-35R5&4R4WmF-^;$kN~L+~c`tLVMR)M=`NAVTrQ%Gb>TF0rSM6{gOq`
z0T>>=)hW9TUPgY_PP+gN{iXC*k6vFG?L&KT3J?ju6&q0cnEb&`X9#adL<=1+3{4B)
zCwkh%;M{M%BcGsc^@nGd1j6LzUe8K#2k!Zm26&(GVIC+>%Y#=}g&01&Y+rY>?tVoK
zzy_f3<da8jx2f<Ay+;d(DJGzYvX;s985!l2l?|uPrPT=K6_2z_*M2iIZ(H5}-5EMx
z7=zYpm}wh7=+taH$3H9VX8hJ+>ePE$!r>tD#joR)zj^Yw!)7AeBipi?690aM-mYh*
zr;EIs9ZcEKHcH_XQZ<GD8>ad2;Iy43uZW99KqX+kw-V^O%FI&6u8%9TJfm09?|FLn
zE#c(D<90NS-}#21*ItM0G*vi=NQtU5lOmli@;JW7JUKPj@8?mYdBHH=i!hPvXhN<0
zA0&8ev{)WnnEWvViByXYUr(A@<%GjPYHV$WrC6%wO**e}j|OorA|s<n2&jrHoy^R*
z1YzmvdP9aJ5(}jP41l(A4B*br&O=a0<%>MURat3UVAke)32|CEUwz{swVOa!A<DyU
ztLq{Vah)`I#e9-qLN6K})cdDb2Z?;6At$|$VrprjLj*df=)t+{cDU|P12#2CriI{;
z%;I&A&(23xgBrFs=Hh?Wn%{5SjTc3f=*QEm>MU`;TBp{Wb~6)l+xU4Ic<pWS**WcY
z?8C-ti^B&e6+SvS(~&~GR3M!kM6l@7^y85(WC0+}gVfNreQxq2tzkSvFkV<Ar)qAw
z?uR2n2B;wysrs`jzzSP~*Qm0X-(69jiyoV$)R9ePmy?@A7JL{SJ;<tOoFJ*GX|;YU
z)>$roY?9wTrNg1MaypEO4dZA1P*(jsE3GV({?xr2#J*h%<mEz?2BhHl`VS)~gOm&n
zcGEXNyhAq%b$jf)Vx_dycd;M8HwTt>C&|>lE_zt1e<KiuIGAQO$|zyxCRZ1;$G0|!
z48M`%WuL_J+FAP*P`QmlNOmNJZ|}h{BIv_IW$qss=qhid?&|ubdSmyxGOAp6-4fH8
zC+%wJC)US%WJj-{x^5_9y22^SUY9c*jDjHVbOXyE%3xlkn8DqIVnoot8~rOp?rNmg
zuxI+JC@%*bDvyq)$|LIP(o3mR=`j*3-c*`rt)BeWS*Ham$62=+pZW#MgoLO#;T)c>
zx_>=huG*z^|B{&rM*$Q}Jz1Y-U!HyU57^Hzh>MFe5BgEI-5*_E;eY~WW<g<rGBUBe
z7kav0Y2Iiw=Jen6enR#-@I)OSQw87ttgWoHgqM|<wmPkJs%Cxq67>5O?+)CkdBeP6
zOSfP;__wGH*rsTDkgzY65rr0V&24mbmNcG~`0DMquSBAU$OjcR1sU1vCp0vyt#DM~
z%5a|buHm^B-K>a+PHzSKdJBt{H?M!TEd8Fy3wE~-iSal?RK3;Og*6YKZ*-K@)&1E~
zt-A;kk1F!UOqBx-!TI}n03haU5GoL_|1R+CIDLNpF>)F(#3m?mNR+}egcP+=YtTAw
zbF-Qvw}FGO83w|2`=x;VV~ol~M6Ha3fEi!3Fk;yAGqfQ&^fzNo=wT5DO(Xk}psRp&
za6p@zM2(QxVLBQpLKLf?2guw+PZ>2O$}?1TfNc{-_pol=NF@>E^ZRs#QrJyRMdi=m
z%_qrsv!x#%c4=OT`N4%;zkiYlcI&x6a3~1%+d_sHg#KQ64)*z%+l>*x;z*^_REONi
zYm>GDVW+zWe$1cCUswd0?0&<iNsNlqTix><8V!34+wY2T6)Vb_I}*EIX;fH&&BXS}
zNMGFseQDw};T+qGA9{0QHmV$(FV<?&@%!*Rvu*%v7PwMMV^F`^8M;*29OXCWZlP-;
zT<EUZHvD%Z`Wh#Z)J)_Lyt_NoyuRKb$qfQopqcph`ExNJm!REj`}Or|TWuvG=lasY
zcj^ye|I~<UiuX0XLA`PF`yX)&LV1Fxo~$-ez2FicfDQ>Hjv&ERBI*MUvKSMka*}q@
zn=k^Th=f3oM_)8EIZZLqEqMPS_!aQ#t2`+wyhX)*Ayb+TANFnnz=vXOF7M{*`pXQ=
zxW-i?`Po6d=rXPNxNd@7FX=OY#4Nj(ar_aib;k1^`jv;ZYym(Bs>~LOyp2vmY`-{k
z>5}J{Q)0i6HPYiYYgC1Kptn$e9O@fu1t3@(#>?tA(bYE4Ha0Ri(fL9l$m)OxKD0j=
zr@RJVkBF!`X~`}LLYDAUUb3T*7D*%Q9do&5*hP0?moth7-yWvL<8)b6vQ?IWk8gPu
z-o0bn-?xJ%H_htgtuNL(yoi@)2Hul_!JT!-h$(!h6ec#h4X2i&;bA7m=Y#pP^OE2C
zA74eB#EHkP_0M~FfLBr~YH9;uG)MjFo1b0h?T>$+Ry%#iI}Q_3iq8N18>FH`2V)XY
zi=R$dk-^9da`L^mklVf|`tA>bX0EO+jH5ssb;$0{PVnsy;gGu#jr=#$@cR*#f{7oS
z9{^>&$jz`p5>F>^nH>|nU-ND4T4N|Ktrp4nCke6RW2fL>rwqUGWsoS?uZ7ECd@AAO
zk7Y>myIU_EzQEhb$bVR+AvZTEcLDE~xHYr5v0Dlz3~GXs$JqfrLT5&K1aSU><C~yv
z`HvXBiJgnJtF*BAxWu6DpL?b06E!YF*-N{k@4JCkYxHdy<tK=8Ww|$|9z0xJlWs}X
ztgq|q>f(};G}Tm^h6fiG^oEBA`G-O!3l{9tUY2!sHZ|37GI7<~xmEY|MNA(|{t&aA
zNv3n~oWf0{Lftxh<5L=?ZD8;W0$_@1UC@7pXfYz9U$S19LyU!v?pqSbN{BSE+dOH~
zO&DBV>uu;Nq^6|qI+>d>E?j4^RBraSs9(X>)_%oB2y$ZtOlmWl=-{NgNKQ`X`S2J5
zohg=&Cw*-ma=Y%|=Dyh@8%=;q#{C~=XUkNDUB7?!+8+x?!{Rn<u>5uOO*@U!kT&3L
zUqTJ{pZE7=#IH}6+J+6{GuzkPl<5)W_{W=V4HwH}Ehkg21Zx!AxS7gczRZBc_dIPQ
zs>lvoM{=G9mmq?IarDpj&&>38k8iWGia0EZVo!(oCI}}dlh%<|quNgC-QCmmP9M`&
z>zgi`sji1q>_eFN_1p8Q*!bobr>nt_Sr+bV-L8LHbf>BKj+#Hlb5n&TT5D5>oaS)6
z&J*x_$ToQ7cm7w-wch1>f06c@oxS>{JVBTDkcbV;69>tQsVtKUWh6Ip9k5PAR99Pk
zxIeoa5aCQI!5H@KPd>vg_|UW!J;*`xVgCmgW$Q#>u!fhh&<>PB@5Yh3q76|~d>8Od
zK8^YI{H^6w@VVRSXU~}&1_5<^J2!DXnHP<BP&uZY9F7;ngM>Rp=D5_>N;~3u?~?>9
zJOCmo`LTH|Sk!}M6O=b)(LuU>yJ-}c-IvU09g#_qGH?MP0Cbc058nxl$qyhVFrBMh
zs_r`Z;#M(iaxUl-SwQPr_wJVroL{BN3LNEj)LHI{#sCHQ)H!#SBT#8s%hIoh0ALEM
zKkCt}a-#V<)MR7@d8=1<mo`yFZLXWLt*lLQJg5XDC>}H9{EQL1XZr9@YB3}<G-O#|
zvI0=OVQIl)?LV*HEb6S_+bId7A1mu!{#cgL1g|(b*EY-5Spb@c)b}mEEm#CJ;<u)S
zmgtL2q|RhE={Xsq*S*mM)a-_T{@spea!Km@d{&(P<bd}oH6=xwr>?3>^!@2w6#j{y
z%jTP7__s(b{EqD?6LtjRIRC~zI=sPYeo4$CVB3NyB}NWN2eeUn=cUtUVDUZ|4*%Y%
zPA!PHtu2h_6!V1FzlAAn==d+)v)?kxjdq|KVI~{pW875Qu9%dbOTk4ay^R)?Jda7k
zj4FkxRWRnV?9@mt($Lnkp{;E$`3$UPg-^}<S@;VJ5RD3(oq_QtZ*Q^?(aj$ohP8{=
z!{&_RUdG0MKADO2{0r*+OzFnW#r0^vO$OebolX5I5v0*+JND2)qxNOTIBB@+-R`t(
zbbcA-pJ&((4i9E!WodNoc`2HiS#1-dR|emjcln<!cLlT941uOA%_aVF{`oVGf;K(k
zx)3yZ{8A$5*X4b;#p?%7evU&JU4Lq7Dqdt%jQYqxN;oCvoNwsiZ!S6JVE^;)J$B7j
z;Kbb0VurtIL`1cuxC{7+{TQDvx}#w**k~F{o7?)IC`z|%iQwN&cH?#JJ8@(dA&srA
zekY5yS!RAK&-(88xpg5JMuwwNUQ1{VDal!K*o3V9Hakq9sAHWiw`k=b^2vYZCI2z^
zx4}OvAdr?-|DO^zmS36P*3iotcUt?(+ugJnsP!EFehR*yG=eM$0vvBT6E?a2^0IJT
z|5uvJ$}-a-THh@PxY)R!oG$t5r?YZCy?^Xr0QG@)L$O|Pne_~9`y8~mi59xo!#;m@
zGkZh*n){XKLGpZhdQA-;R7<^9cIjp()hlUO7KmN``tIx<%ySBOpoE%ZX+)R$tp3@A
zVwDV2mEBGjV`F2%#ESVZwjA^4+TKsvD<;@n8f<1{rDwc)E!usn<mTo)mR(1QKzLfN
z2mLw~_Nhc5)`M?WzWPsZZ8LyNw%<p1@CWrT6<t{B&_*DlEG`moUWjM+1*Tri0Mp*Q
z3y7g;jH5X0OCinHg<=(br$o6Xkb(2M9YxiV=h`3TO5^A2kXrS=6%CMj#N}0BTVS*6
z)BvE&`pDkAlZ4C(<WuMwV!sy@m-Cd5YDa+D*WK!uRDnb2OI^p_>6}K)VPG^gG_68#
z<YalN1LIt}+#tP)tNx(9Hi>-S)pi8h_1i}hx?dZ?%~MoD*%68179lH86ZbDRvrNQw
z?e+-8Ym_h)lCU3z3{qea;N{rs6rSG7&ho{Ro71(9mb$v%nI`ThtNxZ=PPrG{mavoj
z#D7@7Lw;>z<q18`H#^k#V_?AeprAv6d8cR*hqxM$OtMn>cHxO}#nd`cS}Ht|V#<Vn
zNG>Kf`@=d9-eloC50ErILdVT9$_gwfxIyWD)Dsdon&V*q?@HCzt<Lpw$L1Vw+j0hE
zHzNhJ9?G@?lg7J_y_`#Y#dUXetr>+!F6s8L7tz;``xWkgH1jw+yAyYH^>tH_m~QVT
zP^84!pjHZK7V=~NGB$QI^sldq%JDPy?hmS`Uz~3Ci_R}B9?uuf&xDw(LzZexzaf0{
zIO@9nM*ZV^?ys7w>$=z^7`*!iv&cIekE&lQz{HpK{kR^i&CfUf<=+rMbVUzy5qt`&
zs_~-8Wl!R{IerN@vOW=ZaoR0Rn{;x_g}3m3q=!^iRAglJf4lGVJ2yOUC%8;n??TL{
z$Pc%7dPp*VC1+;Zx2=Bs#?HV{(%LG-!cqaL)<6IH^gblyVL!{_@u(zes^INcyYb9g
zlQuVWY7sk_!hr;BrGIeZ%PecCxFpTc^2s$m#S9Av{~3ZUjk_R3TSg{C#mid5PygE`
zk<7?J?P^k1`Ud}Q`L{#(&834y72?=q-bSWD&XFe!80Muwz7PMamjR+5ZyG*SRf!?9
zw<*vZL?>3hy4UNPWFO_DTdw{CC_;-)s@d$8PX)?=G4O;^+SJ+lvpMu9*p!I0Z6jVr
zFv4tO=|AOWdJX=nA~zxr8+}%-Z7v)7M&`R-olHjhX2x(qtF_YjG$P%#8@DNu5*P)E
z4PMOrq6nTDSxy}M8k9yOd?^B)o+Q}UC^DoWeBhu@2>?p*I99F`4q#AItBy@(;%~HL
zf#q9FF?MwG7BT5Ts2>~e6c_?E;jBnXB4Jc>N|JdhbnGOE)>P?x8}x*WGU3V0juq2r
z5G@kLfanme(_aV_QIsq=xIsu3Ae?ixY*0U`&W|uEX8+KFN`Ir8o>LN+R#z9K8?kR@
zVrI(Bq;_8yQq%?>rsLRv9Kw<p>{INp0WpkLv6eCbZz-4Wf=e`9;*Z}s+{K?}=R$*T
zZ>1#;c|yPcYJIg@Z`kAYcjL=nzn`ia8g418O`qPdF4)lvFcH>9f)wH)nReD~s}&kw
zWKxx^b(}msNBio(vWt6V^X8`IKR0Sy1h3vm@LU(=em9P1n%ccY@Axn>i#a9A$jC?w
zTXTC+L4q=p`q1B0CRtyhd&rH@ym96ZV-*}l=?oW9Kw^jk6Q=C5mZ*M_o2~@TnAE2g
zt7N8RIk^~XFlFS3lzgL4+Hd7$)rGW}brFmzvoW<RX{R@(rn-~8rsDGnuvZXbE-h{n
z7Zn{WOsD7sLHvI%FE-h6bV+F3Ah-=e{WR(jh*7pGn5RnBpi>49uaB8<rPWMsE+R3%
zbADl=#d*{72Jtegh#2ZCi&c*WDy?uhXmQ=F_J0e3yd0z-=POa0gRIX?gWs&#w|)J0
zFz!G=<2y8Cg+Ry{X4kP|M5YvxN7WI-HUmy1@+SYxeHSeFAY_qRnn1a@F7WRd_jPW1
zPL3<B91pgMG~GoZ>)5mG^FQB^2)Vm>7TsoDe(Jdb*Z@pC@WoF2>kY4QuFyZfMn^^h
zwm*`&b)B`gx3@FTQ3sT2q5|Z`8npOCY$E^M-n*@gF^wA#(*Nl6d)j;w^6_};(<Eb!
za{>R_+V1-ojbm)<pprTu3WCZ1h_$?Pp>2VB69`pj@E&+|h<%=X?vRh>E#c3#jy$U9
zo$+dG?eU3Oi?1(1^xVvkLyORO-qw{GV7MFjSz60TLRyS!x5+8tHW4m<qdct4=!B?H
z4;brkx=p|3@HpZGqQUl>qgu$P|7>1YXEy2d?R>NQ)924V^-G6!{$0l>gRXpItov?R
zxD2R;&ncLiHrF@flY%nbZ`Q)<5)G&Q_V(AJHqXS+gmWZzF;G4}Ebf!~w-_xNu6-`f
zm)v{?+;M@gBBYkvOEMIpXN5y+?Ar7eqCC*-t*7_nk%@!{RM00r@cf>pJnW}R?ACYj
zHSAu|z8Jyzpe>{vIVp~0!SQ8)1a*D+aXO|hQtMhxA%T`N$tN6oNI5vTGB?XVHl}jw
zdD$9Z;%mnw#WK|)%_j30pu&02e=k3ThK32#ogwFSYv1ooaY#B6YxkG%261+UZm>_T
zmpR<(yRK4mu)p8GUovTRT0yAirCwb@Me-JkL241A#9{4>R`HMnxRI-8dQ(E4&}81<
zp5a|(b@f3o4Hu_jm*2iTG4l&a8%MZA@3s%7b!H#U;!L2m%+85>cLK<`^H<ljWd8Z@
zcKrUMnWE4(H#5L!=P-jcCHYk}cdQordLhbd+zQME{MvGJu?pc&-_+&NwU3$5J<CT`
z;De!rJMioclq!Tx27$&7NGAC9bglc{zs3@bl@%@mnhgu%kcpX_@82on7liI${BJ*r
zIS;p5#K;+ccC4y8p695qMz9v#Oi>z`hla+Ja^d0<xc{}=UBZ<-N#2arJ@)OoJzwqm
zaQ-PSjxTTFdztgCV09)-MJcCAQ@i@=Z@(_H)R7{zzkhyHE+Zi3%A=QV5<$c=fb8-=
zIEhr;B3_P9Jra>qV13gNPA&-vu?qRi%MutqHq;dBbKnO*^enp-qw~V~WX917-TDIx
zuLGmA?=2RM)`4AquCJ-yKF$=OLgr$iv2p>#-_dM1#l-%u`)}6P*8clZQ4sX&DDd(A
z5H}!TCzj>v>gv=l*v)NRQ}TWf#y{nluGo0ggEd8NGvU-|sRp(|l>48oHL9PiO_PS0
z7@O0nrq)rO2)U7a9u&HY-QvAk`&wGFX5aGrcw@gAV>9T>#$7-cqbj`}C!Hh#og7<y
ze48o}p^Sx}{h!iHGD|4t?{kT#cz3)>9-k8R6MZrZfgx+{Am5WW&QlL#h}`L~kMF-{
zWNieF|B6F6K^A%}dJyfUpAnsY&#Ujh1g!L+MZaVcm`vqkq#I@D#RtjYF%TeGhu`>j
zK%z@}rnYUi1bvPxeML{GUY0@7Fbh0wpTdPLf*M2L_muxY!+g=Qy4&rRReldX1m0~&
z{{8wCByDHcF?=TJeZ`uzG)|7c^a54ctq3nQ?^i4^5ABc;+rIp}5_6s^tL}cnp1J%a
z7w{NMypxzhChd;0uZ@xech1mO!)936%6bQcAkG;c4*O_gycKQ*23rmFf-a=+RX)zD
zib8Y8Wv+^}l&1WEBJ>}wUiBAW5y`}OYv5y23FHTUkxW|M_5JGu;m6ZXD&rj)P(L;y
zj5VebJQz~|GBGj+u2By;Dl2=&XNs-|`^kbSqk4IX{K3f_AfQ19%_19M32*(A<4Lf>
z`Io=9AO3thWSDxj&>D(`Y;P+5gWN##-VA-336H#;>i$~3Xyt)cA^=V1<o$3dBL&k|
zOLj@IHA2)@UH^IR5pp*hZ4Nce{`@}CWPJCuAwelzr>Uai(_xz4baAmZBVXq9eabAD
za0>-3ikXqI=lXY^Tbr1K#Ogl6f3XXMS@`~?UiuJDP*@lPU`Rw5ufO6x1iliN#N@U~
zNLmWcl#WJmlwns@`zFA}!NI~I=CJ-fBbDC5<59#&o4uN&&1Ge+$@ded^5rEqgF=4W
zyWKa?nZT0aR+kmy)P3(M$`VA+?r>bt?_&cK-Ddlnq>heSJqVNB&vk!fD_7p^EdMl^
z5AJ=mQvJ1m`|kavaICWOVM0%`(p4dU)Y)oVm*!^pE_ZJCL-hH3!{4s@`WoZ<wZXUK
z4bF$H(1Frs1-L__vH$tn`@0!wqs+hf;{64aHdDvAF0?Yh11$sHTEkib#a95m^sKV7
zQq#bNmZ_lOT)`7Yqi5iPx|l@8#i!P|H0C~Yn{~FY|6Hgx*x&oye%hpJ(&~bNbar+o
z<9={DUFOZnF~WL5z1-^hx80M>xOUO8$oK9iR)L7AVX54r=?+rlWKoocuG?V~C2}^C
z%gf8V$?tT7<+#XeDvg-9%l9nc^HD%n;w$5}sePFHX2)&TnHcZTmtddTni_7-H*RgK
ze{O#?I-iH<=63Q&<B6Dh{5tx!o5qrOw(w;<N`1AdnV*1)efigTYfx73cSx3><EG#E
zV*ZaGRbqZ;tBt|+K+7NVjiFDH5`+;97{fvjO$plHnd=t{A47kiz5N`xN<cV8$yi`O
z>7!7w&CvBXgaT`z-NVCk%yYD{X;(3Eztwdbg}igSrjG43x7$kVmqBZ7iJuZ;tzsv~
zI{dRHZR1&Xst}__2|8Y0(VLU$1Ldaqp3vx^Xoj!OZS%j>>X+iRe4@|lq0tS<Pr!h!
zgzQIcM^*_qyEs&yDQB6R@1>-(KEQeI0yO4O(uX#r-zCV!Q3f&hb8}PBDK^UlI&A%R
z+_w{y|HxD}`0{6v@XJL9>LLySO6nLGaoUczv0clQb4pH*Q=18ojCp}MWM9NwFQ}$+
z-Uw20g6RNLRQ@2iG%A9BK|60@lxbGi2`z1xmc?vw%*cULxog{QGi{|ffl#@rVvu-a
zzL6BLXZ7tr^oxAHP~z{e&%=WYi}OFfw-VE33xx(PQA<FMomV>L<JTtkO3~vvV;TAA
zj62ph#%7O8Fqq29GH!0T^A>V*Q&E9gnHk5JuHWbtnM<d(E33U_O1o!AimhQSE;+$>
z7d=f)V+60djyj_}c}9~MB5H)3jTOAcyGcbwbFi`f)Ic^czW$11?uxGVv7Dx-3sFU!
zz%+YV^ai~|6Q{;ia$+M|`d70jHy#8+U9YS-#~l8INXl!=Wr#k9n-^uPvu^dwPgWQz
zsH~q}Ya;aT^TBYQ`<FDGINoizcI3NU%or0_p$P25wOvo|DK64@&T;BCN-LL^6%egT
z)$nesacwH2_ZCcBeU2oaUYYOE^yVJVsc=RwdkZ?+G~m<H&>(dbe-J|n1Ena_mVfjg
zo1Pw<;K3{5-9&3POmCi+41Tz~l=c?{l$MsFdod(DJS5)Vzd~URBkUCv2}6aW>}orE
z6T#YkF5?6A<K;6;cL&Q9agx5*=#yNeEzU1;n=}p;k6;nJWNl(pp*5@}om%d^$zxL1
zAu)n1*uAZ5G2&|C<g&O=d)_kvw2m@9tIiV60H|J|7m1iY`Fp%t2J?iaOxnK`z3uva
zy4mPlz=OVAqc1bk+mG>=fJ(=9#i{WkMvr8uL!m?SFrDAbp;JRJ10iXqz4ONJOj{RH
zLXOE_IZ3_QVo=ce-8gI9wZ#ZC2~3CcN|Z`N;hlMONC5(o>jVyx(V0aSF;o==hnQ!L
zCxARGSs9P#Xe!7)Spia{@9-b7Npk9$@5tRbGs1-F2lCbcaABgO=@P53sz+GIBF&3S
z2sFx0c)-c?sYG!bhn0xEm}L<IrpL;cM*+5zkp=}~0YMJp;O)Ljiz64JOp5)!-oq4I
z8DI)y1TU#MQ)J|HMd!L()_84D=;NDmby0&EW&Kk*^{ys1K^<LPla_bNjD(Zpcuuqw
z#|=Od8!IXiemn*Fu=3&RK=Gctfl@My(EDhn@x>Zbh`w=VN{Z*>JsBQ#NK~m|98Nru
zF40LowPw?_TMH37I&n%k65Nlpi)D?IV}y$MzsZ*@nBMl`Hh*ZD+Xnl88x&pP@==f1
z;fof&>J-HaD=xO-@?N#IYptxSW&rb#MY>a=lt)Qd6;b9Qs+wM)$>i2mBMvVA9KYf=
z$geJ54BQK-D$m=HY4=Pd1}OUBswU?1m%l@>wI-t}x*3F4f_~ftO7ud_F3VQ;uS|wa
z-^j4Ch&fCw$FI4Ol?Ws^o_}E1+!{eTQWuZ`Kw8JMH&N%I<^XpOnQm%^S?s8Yj}oXQ
z&bbs0&9_Gj{8}?i^Adz3w+B=t*t#W`#T3Psf&eTnI>rKh;V<-D-;Zs3eMcVz1q0>>
z-WEZC{TxF|4ZE1+<aBupr~skr0(DhVdV&T+5}+O)$*`8nAQn`+_nVD*fu{DJRQFpJ
zD3yp$X%k||x&;WwvrlAgqS}M(s2Zip9hlh~Q|(R^uAP){x7ATbA+*&61t3e1ey!)Y
z!0%7i-yseV{x&d?ux9{wm`Ym_qtsW`qD=8-UWxhYb1q&r>8QMG=tNK26A?$G33Ypk
z;MC!5WH-JM_#`NI<!-LrPP~XG9896*c%{H7PK$i(JOE<7afrc_nlkK9_!vkQv2WeJ
za)wDLn8IMws5N7VY;T~}Rv{Mz?;y$VcC(>2oph^joig$iOc^Sr=Lga0(Bov}?pP1k
zW^$yTnZb9VYn{7ox|#yh4kl>sQ2Q=GDk1toh#DA%v~J_GEG}iWq0(kI=i+B-)JoZr
z&8a(){O>c0ICcH_zVAYCH#N<U<4CfV13nEl6?xS5Wq=dHdHp92C$W{Vch{FoPrn>m
z+KJc9JX4}9L`{Z_M)W|2sgBj%*rcQak!@=g-(b_!;oV+VcJQ^rSt3&OaR24YY|s;_
zP<0EEtt{6*;EU6j@mlgX3sndw>ZGN!-<>DxZWXIs9G}cXvwH&=Bn7vN8PcuPZMGq<
z0eYTgRrntP;5Or0p<sC3J75uTl`YAhc|W1YfrPM_NN-%!sR4u@$Jr&pUBHepo)o)0
z3_`(2IZOsS=yF1@6`IRMFBKJ29253(m9AeHtJ*2k(+jNNC5d;U?EOm4Pd4kiJzH*B
zf)D0{95$O=$qr3Z8Lv2UHI<;Wv{B(c3C<KtdiF;!CpdW+Kv`}_B>inkA;`UMm~ui{
z3M~rH4%TrZk;?cneS|<cfq<9kqdc*v?z{?!8uX$*b+~_hp%<q*p;vZZ&60qM!fZ_3
zumi8Jxj(=$@Jx!!Q!V*xF;@zSav#`}Af5NWzXt|_`KZa$h+X>oWvv>mdV2L_*~XeJ
zVbAPutxYmm%o@kYmI@WwZ(`(VdUoU+wK(|ks(MXO68MrTyGZGhZP~bcGt=Se>2MMn
z8iy7``4qt|B<ms7xZFY9#fRpZ@48k1kG@Wxo!^GLf1nnQvS3E#RK^u*2TdiVhLtnY
z_y`c-5D!fJa#ge#?mgy%2n>x{+V$@GkG^)jf=wk0Rx7G<izo#t?DW8ca{ojc3~LPg
z_)@~-jlE((%9#{9Sv)C@;+ksuX;jn&28uvj@YKjes$B;H@!h^z!6vFw`9*riMAYdA
z9o<-QBW)mEx>voyoSv+%V1dC+P`7!K=1o<U0(PN@C0+?@OXI&Qe9}Cc_MJ^`xZ>r4
zAjc<eOSu66731i4feLpKfrn5`_Wdo7f1r55MUV55ul<w=_iQv`LYbmozegVbL|(Ts
z!CKa_ZzUhy`~}PAKNCi}U=@J^Q?ahXB3flI0VZv(uWKvQnAWoQ?kNR=-`UUaR+(n=
zR#tME|Gid8Qq+YIUKe{0iQo&IVK=T9JM!LHs-Vcjc|RymVEzPkUiH~NUW^onsWzif
ziyUqbJ<NC*P}3h3SNdiI>_(_n7Id)v5LC+$-~c^(;3(6_ahi}k*EB;C`BbJY(>b4{
z;ls;&J@pE>0#wc_%>y04O2^x)7s1gN8bLo!%b=FL;HEyVHaa>vGNqxZ5tjwDf(5Q^
z#9bYy?p$5XQuu!v<}qZDIl;cZ0oX8dc**FP>T4)eca#43!KR<rM}8O5b4=lIdD%3(
zyPs&BWw9$@G8G_z6+CC2&q}`gjVlI7w?fZS!EASE-|CW|my+Vrq69{BK!)=IFtgFh
zVZnmy`(9!vW;ec5L5g37_pds-b2aA#^R<WAcB#TJpeP$!PfOO#<@V*D9W&DM^K)~l
z9JEWr(qmce%#)0b^mTnce=hF+{=?@-6ai4g2F~!o+|?!n{XSM)i*6I$*`0Qjer4zE
zQu$Ip4_^fG1u<RigeZ6Jv;xDuwEq&(qs0f#O++d}y|V2xXZXG!px$Y_efcrQOZfUt
zH@8)L63WN33(KP*q|&;juagKYvg*9-SXVI-yisCe0D+YBM>38sEI>YD1oJS9C&y9)
zvI^zM_T=%Y83~UPQuGchyPl@LmX+J_IY|-U44^&@gWrC$nhZnRfZzR^G5%N?i20HL
zNVl#f2-$yZswldVDHaHk`AUj5X@tXCj5AbEx1qEIpmrKNOex1Bp@x319AxMwC@_kC
zxu40a049WeoK`|ozM$}b*uRz4D@xYvlzvV1Hihz&!iJrp8X_mhlgNQapyuoJ5>Z;=
zhXM#>vDT<(MceFEt)AEQNyy#n{JbS*x=9_=@+<@Dekg#pO>y;e;8M{#mQ?y#9Q~E>
z;&@T)$<EN<C%JEo$wa~rYgSDO^9$+E`WE3eAlm4NSyf&Cy1tT|o2{CijTdh2<l*Ls
zjQs8C)M;vyM~t@htF@zFkw7Cci?9L+1d5RY9Kv$+^z=Tvo!JkGmt)Bhw#QR^@E|$+
zn7he`o3Dn4jz-1<Rx8;mI=_YD^J{?Z9NyzH{@VZ4&`j)PN)nG}hAYYZ`y~Hynvk4c
z=3XkL@uejqhH1ic?fhDv3V^l{<affUEJ67ZYbd+eaCUZ<@R<<lhD34wzV1<Bz~8fK
zb%5w#BD-)(Ac{w<_R&I#b5M|evz_;tZ1C3$T|In_2F;n+RqH~)ugeDOPSyz7k0MYF
zv%z=lDixy44kF~&o9D_YQ-^6zC-cc7{Uvx6?}AKCyT_GLi0AmPS>b7UxKAiN<)B~{
zl^|mU9P4xx;>8z3jPZj6S~N#4#7A_!<jGR6`6t2{wtynerT|;)(W=O3Jg0(!$!r3k
zC(<z0Y;XaRK`_(njxC*nZ(fWVaFO2}Q=5olQ`k*NYm2h+jYmUAM<<#fklaXl0AR0$
zW1g5D&Gy%ydZpR9prmQ+;!bJ_RX7X{jw0<Smai~?Lx7avrb%&qN1mg0iz<r;-l4!s
zWEzcQn#^f=%hb{I{eu5Bj3S#BH%gKLpsl>PMjMW%5H@g)gURAT$>{L{FPU`@1ppR7
z9RRd{h)WhVMHO6@p*(#Jlw(N-F@1`TAqNW%#G+Ffg+<=>13(^laJ2I6U_$x5X!<ov
zzI{$TvfVHc&$mEstsEMLv}SS?9&{jsx4fTyVgY}K?Y{JrX(0{9@3wxB1UFk&qix&Z
zFw5ZT?taZ_azmNYCYn;Jt#(auPuWZs<ydk_lvf$72+4Oi0YIknMy1%cjCGb{;gAb8
zKK<iFTFhr(r_GWU$A4F6-DaLvpK~O(#)$w%gCFV%pU!E~a2CKwnrm`M5^h_>eIs2^
zzs+0mJ0nIu{ux@L!mu)MI4hA9`i{+Z7yt<*tTt1~_MGC$d>N0S$~dr}fZF4E8NSQI
z#Yh3t1*|nY96o4tEcbzyL79Y^;8YwO|2G`Y0KyNr3||Rz1b;$=`2FWv9{l@IKmzlh
zl75x#TCyzDT9(?E+Lkh}ysTl6O~qE!XWZ@&ju)zbTrtt5VegKwwvn0`STZccPhTm5
zs?B`VYisK)=l&Y1iYXa^jfD*+eI!L?WDpaS;3{hBM9{6|@k`OK(1TNA!_jztCdmPJ
zSckWX<x&4Bit>dsU}^wBv^$y+NJ8&5OEdZM3n7ADYt{FD4sMb$52kI>Z-(D*oLTUp
zOYyjFe+DAGJ+LtnX7ID2|9(P2nh{}8q-*@^*eA<vjUgZ%GF$~%Nk@y$FpzSDY5(2D
zzBWd{Fi3<2Y~t!UI*KitW0aF)<f*LBScR=D<kX<B9nS04V%fFcC->JD3AUOd2NB?*
z6~Aw$+(nWQ;2{fPbmStS0Th%bcA`FD#HDURu1LFRC5=W;uUqBFK*<#g$&Mi2y@bju
zUvzvyO-f$Mf4({I`L&8rh}vTckVO{&?eF4ptTx3hI9O94XFaEjbB?{F0#Y#?jE^Ea
zw^JZ=^m}q)Vy#|L%;FIt6Dm49&>#{-PvRNnh<0+wi6j77q9em>q-07Cq&y?>dkegg
zD6Dkt{^!&TQMZjusCKl39D{Lm${1KlKUZ3#-${Nw-g>P)D6`VIVk)H`^43wU5Jg&$
zHNaYmlZOBRvIL269t|-*ev6rJQjeccmqRzF*BwfMx=?xeDtEM%;~<Hgnxx7TbqF`y
z2a1Zk@>ZzO^%mGU##x<fSvwgS@Pwvnsd$k@m`qH<Wv=h@`lFMa(owS>*aAe5Orltf
zC`w4M2M!R6LQD6py+_&}_b1+?HIihu4eg8HyuaJ_w?v9VBeY&e!~qEe5776{3;!0-
zZ{dM3kw`-{W6SM0tM_aJ1;#PGYuO5{9B{#{P+1p@>wdHsHD#86-wdEal0P11*=V53
zWL8FT7&lsfu*XG(@$SU%CpH|ZLzBOjG{i7~hRM;l1M-+8B$yZ^o`;~|T-|^Pm}g6^
z;thdjZX(Q-K6Q{@cT8?x$N`R~Ag7i+;K<`l$sZ@G$Vc>JhRS;@jL}GeC3S|O^VcPD
zp-fD|xB0EI#{Nkr#bTqVKFSfH5!`Mz#TA-pj*_>_XN8zzsYfe6maGWl<POU{zV>=1
z%K2dIBsjX5D&_Z5*e*{S21*UHFssII70002r+!@BRSt=eBi|+AK(`r9O|Qi0%tm+B
z5m~kafKe^!DTFOUtx=3%XkY*<FI(A%O>>8YqpV!=bN=o=WqD4Wz<is1&9@6#2HB_y
zhG8wSDUG8pu0jbIq8LshvukApjZs6@_)HYBPiVMCjhT0MLartzXMBP_s8Zx9OkJxb
z1_tw3cVhSn<@jyt7^X+dF2leKHA1c0n#$!LJ}pz~8OeP)A3X=!QDSHT*xTIs*KID#
zM*5HykA5mN(l}J-m`-Hzb(6AcKWK(X3n=3OC=6rcp#tb`AR&Y0zr`9o9KR^p=DL!k
z`clj%gI-+PqKjhhAOmPE0C{8CC7>k*o|%!;F@nVbfx~@TDlG;z3U-{<`Ing@dz-}X
zF^32bkfJg`si9?yCz_P7v5|+Q2~n&mTY8gSm#V7ETI05<$w?)(CM6=?_M!GHda_+O
z+G4wt2ZM`^!mn#-!<3hC9Wj|#{-tza*4;3X9V*XDToyR*KsXu;08Wla$4CgvH5jYu
zIF_*-I`#W|Sn$Ez=X5zic!SkigM!#nHslwf2(k4zjwSlgUY>go8yk1e{lQoAsNVah
zh*v+p5)iTW#gKSN{(Zs;ebIdxjRdQvp1#&&L8l@4l=Z4u96OSez>SWGLRcm&uiYVX
zZv-stb6~f|p(+%`7$N8B2$M0*Vphe)<sl?BHIEP`2atrZH?5VaW=T8X9nDv@xRl^k
zlg4Lg&va;;n6%lC9;fCjs&&E8JZPC024X1qK_L5or>Vj`&ael;m$Js#7$Ud?LDuT*
z1Q(_0dlRPuNIc~*!fg`OrX8;?j<IT#J!FaqdJcs-1+HC6YJkTa3O>JuiJ1w+WV11p
zx*X1H?Ez2#JAkc_0)kv@Vk})Xh&NkrgqqFv+PYK1c<6${F#FX+0e1LOOz_Re#5nOn
ziLg<eXtgmd+4Qn16A~xOx$YF(EK5o`k`a@a)>sNsDB#=vkVrfVo_LJcuNJ3pBigNh
z+gW}c@BQ%UUJm(46RAN^<b5HfAWjPdSpp^q<$)-c1L5Q(VdJDsbllt$TpbX%co=CF
z+dH8_w_T+Lf#{@r9uVfdmao~81o!lIzoL$^xj8AXBf|v}1;`v{&5JiCIxM1P4+D%q
z$+Nx32(c1HghA3Un-7}AKbNXN%#(+lj~fkC7^`anzTz^gt*-x__;VE{4cxv(t+?}*
zs6;tV2kuV^yc?~)CqLJ_-1B&4Z9f+?r^G*b;z=9{Q|1&H+VDur6yj0J6iNOl|J*<;
z)NWe$CHVH{=o^Eir1_j4!2$E-w+0G2P*EDQF8vD}cM<SdUwGc>2oMcq)MTlg(g00H
z2l5W^0)}+tOi6LF92}8)7__Oft8J6y0;T6+kD<FnXKyeu-|%DrP+hJ&%-+_owL9+%
zZQ)4~#N?oOi!#&s&h^#F4>T^HN7_XMTc`DB=AmoOTM`we^r!%k?{eP#U>lXAk6{Ns
zC#a3FxskcaA#e>09lF@^h_pcS$|k9q2{8n?+&P+k!EAadwTonehTEW;W&(MjyIfqx
z`!1Wlh1&`A-d$R~JAwT-Mj$S9gF*bF+{aN{lq3wNm{IIRm#|G=s2U*->%_IYkZf~|
zusb`DMh?h78_D*)AbWT(r8b9tO;x&*N1m!MtOAP;+OT;Zj;#OsM?IIyCKe5=oMG>E
zK_b*BgLlXmTUB{fxvEN8l#B1$_|UezVubWmmKuqef<!tY4vM3ua`tMj^)et3h<=b+
zU8hsUB1E=`%~~fLpW22o)?8=VeTY!H8rV>3IV5@*!^e45!m9}XA4_Ke71j5C{XvkF
z4hL!JuXH!k0s<n^4bt7+NDd+)U4qnrgLH|Mgro>acXxNaXMX?J#ab#%+;h(J?7ctt
zp1II<lNW>&;sr-BJkDuU-;fC-i{z3H7D5ewFPFfG1#u6GS9@QpC#%DU&%mpk$ng8^
zn?5Y>*xQLpJ@)oIW8}w|<+LC#1>KjJQ!V74%Zeoo7sv1eH2vjaA(z0QIGZeY6ts1A
zCF{s5`|C*VsyB#&X;AI$gNR{xW&{QaDRmw>p^~Wrfg=3dx4VnhTxv1zKdZl!L_BxD
z?qp2T8@y7D%B+ZW`9rXI@M!qM2Pu2vfoDH53}nw^dzK(*Y0nG16_q}5)4_PSzVi<~
z*Hz~_C!~9cVi*$n0i7EX5j^8?K9Hr=((JV_`rXYjlMG5f{)Zrur2LH`#v%_?tHV`;
z*stD6Ur*0)$#WE)LJ*bgySGX88r|6E^$Xj@?t(M|2x@2uPQY^=v4jt3lMsyO7OO@2
z%X{Gj9|_DzP%U&gS%nck+bY+ebV*GJ5#E-eF|-UOhcdd02HDzL<IVi9-Z1F$q)A~p
zV^f;`5@tC{!84p@Ld-2X|3mG4saqn9iDDHP{|IOD6D!()FC~{e4C0K3ZbA=rBoIow
zS@7<Bv>r&Me2M-hxFu%1^O0vl1eSnRa0GfQ4@7Z5!0vD#^Yh~YOGUDLZ#uF!QaZs_
zkF)Hg#>vtVQE&3%gym`BpXg2660A|;2sRckzF)R?8V9FykNg>PtS%~KT(7fEpJ3u-
z6(6!xsQO^j)Fa0qQ6f!XI<R-FmHbZ#Zfj>pRXctLpD=0q$oLButTPS;5+qKordY{b
z5`6S>hwUg(2%2S%mc}h}$tbh}i~ZyQ34ih8MX6M#C1K#KY#?zpgCgdawf>ZrqxDRQ
z+=C&}1F?%)H<U%mhpXY@lMVc5Vmj){w;!o0es2HQ9*+4OjZou?6%CTe)^fA&m;d~v
zI5)s|aD3v4q}^pFzIZu&TLxcptkzCD`jv7Do6pIhU|CrivucL>sEQzKj5OE%?a8ol
z(A^mxmB?lj$8R2~SBYQMB(C27^E<GxvXZ>22&%Om|F7z=Jh9R7D0>V2WhWuF29@fj
zz3uA@?0p7l2I<2hl}v0L9EEs^gANyS(y4rMU#?O?66&bepBU&EzOpYxqCtq>>r3H>
z95P@?qY4u|kx1PxKYETJEJ7(tR4McN$E#$ad+ryH_2}8DYx?AKY1ZiIJ-wRkv069J
z=9DdRR$7WRO^>Xwp)@o|)OHh2uwpPl7>D7BXpOD5(YxBC)a;vhGIH35nC+0P1%gUJ
zljg%7mnzI?T6axa!q?H#U8dCnZT7#h(zjTLny!7rT)8k!p)T=XQd5%qpr{Elq>p*^
z-xH3@azQXgNb^u82hIp}Y}$`HLKDfhJl|VO3m3O>V}xVUk?CiNv$IdFoL!<|We%`P
zn;!4rvdNZq^d1D7U=k3t1s6gJdT<59P{|%lRG#*sV7$!>TNk3d)cD1DneN)QG=N%H
zz6etiTcp7Jmxy^8LSQSDR&7$48eBq1P$h&nXw4hubeR8K<TvMHV#EiG^(<#f`>{|I
z2%S7ZdrUb)Awzxd;P0W=YN|Dp_GD9V>&0&umks)YB?#UaDEz3g>_u6h(#|$KD*_&U
ztOO-UAZ>$8I<eV_xkf)@Ep0Sxa{s5|k(Vz^;|f_!ej8Mv(k**q(5>UD)L5<~*C9vz
z0VSN5imnaXU**5p77`?RHl`vtH-<254i86@?wxIPGY-63!=Ul!qN6kIhLJxt_CFfe
zHvAyRMA}`&)=x-kDri6Z-F~ZTYqWw!)N)t+VwQJ%SKTUJ#P4?^W5ti#zUG6U&7OPH
z<h+&!;FZMv&ixldFvJ`$!tf;;T*u*l`z;sqe)~2vb$fgD3liRkCXh?Vqh)O)@ZePA
z`{h_p>MY@tf_RBgWA&t!VI?N|w<mwTu=+uXD#pz!$HvD8GX;Z&bHp`@RR{a+!W0`Q
zqELIQPXAGG7JmIoAkD=TP5|TXP9uPE$)ki?YXzXuUcb5ipi;>!Y~Z%VH>5U}jEf@w
z>UlT;76I2#crXcKDEgSL_u);O6p6<*XJfTcht6|`HZ%%HkH1qILN_W|MzYVL3S&fg
zTt8Wfi}~K&II+EIh#u(go-RI?CtA-q5fYnz5ODEJU>0ckBh04}EW)4ghD|^^s#k_U
zeTlG(_$32TR6Yw`$T|c<+kf01hM}yiJXjdrp?qwUp{1cQBl|D30nzJ-E8r#gNRGwM
z)|T8HcRy7gcNH@oj!h)Jy}f<DHzR1;fi_a+cz=7fk>xftu5FA9SqQkG5_Aw&OgukW
zXtn4kQ%wAI5pZ+9_vZ_$x&7f{JHGho_x?5CyR!+-XI>*~+6El`$GcP2D2rtkKl=s;
zTORIj*vXU?6@P<d>H}mV;C{*q72`?6T8cizWar<vnR+LTV0_72t`{%**IWyWi-$A#
z!9TisdfYVR8k4vfvrW>EA3UsuuvmmlAC>BSOhkiF2s-}9${KJwqEJ;;)xkiD)<$^j
z+d>xm0gVNMFYC=Cz4+yb-ya@Nq6ayu8T#iGMbx^V5VY5I?|gDp%s52hr6eGHl*m9H
zL3r-jL7ytylg#2GMK_Hq*olh!=1rVX>9<a(-NMhiQ8mfCHdOrE%awS}meaSbfp>5?
zJUm))Hj!1Dh%P)PCMNK52_v@ad16y_b+xGbCM_W=C#M>vQ}xub=z8qR;~rLa_Pxo<
zg3Yx*O&)gLX`M?f931=L8&F|uDR?<NKcdq6$SikQ&|~|ZQfbtYxJNFRNPFxPl-EO<
z)d>Uqj+w2RY7SQS*MzD<hL(3Sqc!E_<wq-=ua%Ur{m$CY@^+evY@{VjU|8V<*sSKS
zX=Py=zgXm%<r2#EW5iw^UMGcO1eF<ihQ8nGMt={>4!XaRiFneu6hT4lvzj0mOSZPY
zPDV-^jVea1_T8ma$a}0r-73e&^3!9q(0_E^9z%_vM7oY3pVHGCJ$AGVCoFU&d{0@B
zmzh^LHl99x8mmEx7YXI!rI(pF16U%_OBPn``7B-4d{9fxG;4ifT#<_M454ZozMe#2
zbbY$T>#>~-n)XBOqQF9QNryw=jpg03V9Rf4*Jg#x+jo|8lzVhhxKfX${W0s9?bpc|
z!%4`<0`IRj=;dLr6crWK)G&fa3KS&oFIV<v>b*p=%d{(gF2}rpv~8R;8gRJ83|iu#
zipTe?#JexgE;(bKe}ThCw^p;%GWcw^{uXlnIFzn;oSXOE`St?Q@SL69VIYk=iAlwG
z>BH0ax;ea7L*Gq1AtpeNv<*GRPlhFf{^?qMPEO7WIG?g~zE-I{G;!-$&xLx%_zX1)
z`(7~gI7w?@`BfKNsInAN#}}()3M4Tbi`h?d$*B+EupW>6@{Q$t{`f2cDu!H@;&}yg
zy!W#WF6-YMYxVX#n<ul>qdySgp1PCLWT{#KwIL=V%5XB1#%!G1_c>V)0RHOZ<Ks2&
zV`XM$*7K2y3a=-I^aYql`nJU%Cqr&Rlv`U{s2F&%m{@#fA<uF#zhq=&fcZV!ol4@?
z($wVlzdWp|;j5o<sGf?zqnZW~A>c60rqgg(oEzA5xg2}Yu!1N3O4YM&-1g3Ns;c4g
z(hkwcL{D%2Cr=8zbGC@bHBibFPUC&oM){AFr7TKsgv8^BYSQoIEE<^k@&qGEGn(16
zA1&D5ZxxHNcdS@Iug@lo7mC$#Y3CJ&;&s|#l|bmbC^HGBc^jAN%t;EM{7I0uJ<l6|
z3Hz8|SX=yqP~}&zUa6@$eRTO<E`n*1>t^)!t?ORx#QOSrPV#3(Y!x@&Co)15UAYs6
zUWWeuxBZ;0Y(H)6-*ZQCy}=9%GljNuc2;zxeYc~R?%<&E{3;neZ9x5BGCsPb0_oq(
zLzXn3snT}T@O2tK&uFd{omE^u4L^bt8lSRO`4EDF$JrRBA2&-hzU*AP4U4B{W-4QX
z)SUP=FJ2D~r^_FoJ7(lJ5#3kN_dkEmKfzarDXTQ3(s!o(Y9Es=wsa?(W%f4YZkXK8
z7WE=4`dUQSv+Io+D3JU76Ds{L)Nho+=2>rLU+MU~F`Nhs94Z;$`;Q3i%7Z{PpQp4a
zy;Ml>wF)84vu5j2YZ5GbW<HU08sR5TIzGZg-a*|z#8I9db=lcU%kjoLLA&E6?~$LS
zm7h)x-R{B)OGV!CiQkmjnuIzd$^g4VhJdaEraa<XE|~h9^FI#vo4tB^jp9vX{>LE_
zq#@Gnln`j4$$yUtlcO?EXcNdjzuG59=TccwG1vL~tKHP#o`e!L4tMetQ(ZIC^0|ha
zBhz-f**KN3>#rqe1_p-kX!>^YsCF5cnR~{Pl=D*3ICW?@<I#rA#RB$=6C3D1HkaIg
zHVz#`M8ChP_Oht4H<Y9^6}%$d_=@m;>(stWWW7tIeo&0nr7Zg&K9$HjP0h@~e}4p7
z@;sJ$2O5xfu3~;}`a@W1KJ5DdANv5dH>L=6$1Ooz^muE|!+jqif$Y|1=b*9t%5<F1
zvuDkM(ot;v8Abf2sqxnq?~+tUhpBD0+X=De)z6~4BjWflKH!oH1QKj_eCp0BClF)m
zt)i#l;t4H_-uTR513WAF?NSMW3wHZVtPOI3OUa#7?G1P^igO642WSZg{H&*i4((nU
za1X=>5YZBr6Us!j{wa?>%6gL$-{;t|dmoceDdfBe1dm!W&>ytsyHSiR7F2{ytCt&|
z<0I*3Coi%N^9h_)1Ql$eeuR8-j*7CwDs7GaU=@fXk?XWS+qjYA=V)nJ<Sdz1yYfG6
zD1NDqds&<>9{zb0Gb1fSwf_E$sYu(%$6^9u==AfdC@NO6R@fw~*^nbP|B{}*u~mX3
z{9iy+4l7mr8h!fi7n#U;@0GX&dWE8*q70dc=h@?fS5@3MYVS_ojXtT|LdgtzJvvGJ
z`<lL(<?rKfJH8GM4&eRsSu%>Uof%;if~u6{d}6LcSaj{q=uw3dNVUSkXFeB48xOVY
z2-EezY${iayTOo*owYovcog0pM<M9C`ie4->lKdH9Ctji01ssBo%X}c!b6TkfN$|o
zwuhkt;Ut02R^Csd8q4sxZ&z%wT||6K(boNorV0L%wl8hXr2{5e2h}>PecRS)+^|!l
zu78+f^j8@e81T5Q4{)0U6?T)dwY7CdJZq*w?z2i^P<(}DT3620(fz;TM?oGSU-l^h
z7QU%Fwk4xtqUZjsu+<P{e2?4Nxc0@tLQrP}Zed{|P%@f;Q}u)S7Nm=ZzX5{>j1K+_
zO0fp$tkyR@cAf9EqM|n$b_hjfWuU9Z0cV;OMlC<Dw_kK}A)5D_fOI|&$D@(BUC(rS
z)b_1@ej0#^&&fvX&AcB_=1eY^Wq{4}d(8Uvj^ZF~f^}O6yxBuRMK^HiBBcR2;Ukr3
zk!tpIu^J6sZs6@v53sHwkdJ^DgAhX?4PL|#G_CLkD=TY$6*0tHEC(t45BGPe2Clz_
zH?qv}w&Q<oCoLbVm<OIb{beIrgjFv^OivIRAaMXn@u%O#ek{i`P6Hfues%7TJ}r+w
zFPAha!@yKozGYx;Z=Ly^(H611ysSVI@GfPI!?0<y=_5Cg?cDvQ9Yhbc-|LC9NN}9s
zrI^CmjDB1W3NHMDJ|!hJ^qTXiXuWSj><mlX>{bs;!~$zMtDAAW*^qqLau;be_>Oc;
z=*sc&@z!YZjC~z2A-{u`37{N|j3CD`7k_17W{xfEM<K$}0&y=_BH$W?L7Q4V<h0m~
z7JV~puFK0?%<<bN%!v;IMFe7(dn_5dfYZGHxTdyn_7F&?Gmgy;E8TJI`gI01)(ItK
zR?zNFe90d!E8W1-#17j~XX+g6rtLa9Gt#s6eeMJ1k69P+>3%uZgV_2|J7E-bF?Rt>
zHjU#_!FwL$4NkeYX}bo-#>N^NVb5HoV?MoUJ#Q1Xf}wY&uoNb1X=%mmR<HLvVt#3A
zY69YJ<bTwaY8>cusQRSSdo@A9_hLU_wKsuLIRysgeq_#;(ZJoEn3Qw?u*9gv7nfS>
za;rF}=_1DukY4QC^$wsI&)u`pqBwF<<XC5%TECT+HiD_g#=&M%%ke+m95L;TsCAsX
zPE_U)2J;Ls-^Ha84wrru7aQB(-;X*p`uDG6%h^A$a^=RY^BX63VE%=@4;L?wR?6UT
zcf(wMzjJzgNq<oLAezNPxy?Z25y*4^VSOR!A)r__`|s#zZs4^I8gftT6{y|o?XtU@
ziw98B>w}pS&0YsdqyuWP?hl#&eJyt3f_&He)`Z~HtJ!P|K?Ox%Woc=t!}0adMEjkV
zUY2S!!E;3hYX=hD(fs~Ld}U6Cpw#FkovhgS`T5JK-|CE7qGeG;eBq<pK=<W~xqbHw
z`X&ZSypU&I_*B(fKU>tJ2_V3J>%;x$7upiXhn<b=`mRGar(2^13iuEZ_6WV$GEh(;
z1$@PFv7kdyUiRGj=fcUz$m*OHBv@HXWg_vQD`f0?ptcTXnlHdCs1^g^NQYIPQ;A@%
z6a8>EG@MiBY;oV6<kn3IkT3=fPvgCa@{&bRuwFTpWBD&C`V%ljtuoCNi|{v!iqR7*
z!YeRd2rc-zVY4S#uUD$7j$p}Hn5k)K)VSoKPg9c{3=nD?!w(=8k;s8S8m%jqfy$fw
zHn!{U&j8Uf&C}1)2^jPvj3g@&Mqe=LMyzFP=wQG%RkZ}J?2;Uz?Ff~TrS?6~TyC&%
zbTS#DUrpb1{^3^{_0SwGK|CcRWn^YPvBZ#i1X(diTmw~dH^4ib1;lV5omcYmP$ryP
z(5LZ^W6*@1Djc)BLu=*8x5dcGz+a3u9M$+)^1pxMU7+K7dWs7RTW*j0JLa-;aspR-
z3A>?8Xb>JAp8KoeAaoR&l(mKiAzttNmmFT-Th#sif5^TvG^Bz+BbHnn|Ni|89_VgZ
z48yYfY)zPun8ntA90%aNR$p+@;FP4JvfFKhMTlJ@w?eZ_3z>J_H{XP;CGbXY=LF7q
zfChc{zx_@5uM!!QiQXnd8Ib<=dS~L>%y*yaLEAVy{CrO)$V>V`*|4+A&|1DHoqs$G
zpB|b(&p4iDecfdeLlgDd7222udF*0#uGtIc?j?Q=$6pUaXJ;37)6hv!r`KmY!$K>t
z`gz|nwOk1*5qD>iYzqsE{!~t<sj4;6gC9xBpSVogf=_E|z+-l94t{3(UabKukjUkv
z7dK4&Iw$IdN5vznPNFU;hK69l?bh0kAVkAg8RgR)93DOxsontidcBOpiTvC?kY)-|
zPqxCEA3ywuFle4U<J(NP%J~9w84~r{pDj>`kC(XK?0RYh2?utyys~0GEo1(y6tR=Y
zppxc1^7tw2ckipnC^oU`^2KxSth2Kiwihwal@kvsepj(6-8^<HHYcViu-q;$K3vO<
zd#^iMLoCa2cO5tXhpKAIZTrZZI%qi>!*a-e0x<_9?+FBieqd?KM*6k3pR==ZA-cM{
z9l@Q#!vh1ii(&YdLs{wR=~vrj6@66$P-PVrL%^*-*?XaWD}#a#0{RnxfIwIPlE3>|
z+gL^E_3f~}lgIAlQHs8!4=^S>Tf45>4i-lKTEO|sZbn8%^77~q7Bb}?)$AyS-&MEM
zb`^Jb2SJiIS#Au9zJSh7PELe31i_2Oa<+_Bn)e`gB!fxIr#lBe;I)zMmBViqKIe!O
zen1B_GfC>v1X;Pck`{dych_gJvq`ui@T^!`%letU6YrAzH=SJXb<t>I^U$LSNM1}o
zD@b~4M7SKn`1FZlszqbvX;CXdXa<h&&AVE!c<N3Cn2^QZlC}CsaC=yi##_}TEj|?u
zl0spHz=ykwi+R6;VaW&kN}bT9mtg$?EEzPqS^%%0XD2eMn3$F7HMqDL>)klfRnddW
zDo<dB=33`b6=)<1b|f7tD=Fd8h^1v^y~a!!*ek-4!Xyl*P2mSWeoKGr!wd6incppE
zD;uBIsZEnCJpb;y*5@GVrHATr)f#es_@X3z5(05?arvfSUzD67Bgd#{JAt6$TR!J9
zN0oI?6MBr@i5}HkjPv#hMW8rW_-79hyVc&w+h3dY`aa{IKNnh9fRz;})BGyZ{`(#A
z<>;TS2#j!s=-YpSAYm+mp>c9^kK9_w%Xk0qISD8KPd<nzeJC7i;N2SvaS|{`SBn}n
zf&~utDfbVIdCcv3;;4&EO08B{S|qC8q;OP}xcZDQxMOp7$Bb(k>5?WYM0^^g*4EXe
z>d(3!Ex}uN^vXirfVq{Fm%ma`iBnOB1!`1H?HSdJPL^F(Y=sC79-64Hrq26U{L@ua
z^+GFlgtmP^+3;GshjDl2Rk3y1Pdz;L$Mj!?M7ewvvdXjj>17-=lFuSm^a6}<jIN=y
zN_ngf#_cUMrGo3?DQZzH*(NFaB8kAjz5H_GGD!`Ef{2)?if1(TW2&rtK-Xq{WTZ)1
zF8YU#jn2cJ_u<R``vXdfZ=K`XX0B<j*%PEv4rXTN^Z)Mif29!yN9Gw{S7?plJdoX7
z*AN%h7*|lsVBj8J``>yos7zGzj`n1E)y-LwdJLJLQV^QIp78k6?>3bFAj)xnWa44M
zbe;b2AFk`!_V~l~MC+`h*O>8w&qnrCwIyA6;M9++z84kc6&3NmI=Z@3?Dex%Aj$NO
z()jIGLcQ*C6)=KLcr({)cwjd8gPB@Gs&zZ48wL}&umntbB2JlCo*6~vp;*#YY^*W)
z@c%Xpo&zoF<btlmELU7s*fiz$COD}kQ!t~&ej$+?;m>~iU%%_0ScFZJ6fW$0elOG<
z?Irmr-{8h5bVHzw5js?6^UUIP%6r`uGyTn)Po{rn$#kC@IuA`Ou(J#4vANE^zJBD~
zEtD1#e&6@vtr8WUg1H2ov-Q?>+GE1db*u2~>`bobBR|=yW%U#~9`sX63OYpc;r1j1
z6$8<@{tUAD=ZnmHgazy#^Ym<D!G5Oh3?ya3Ee+=PO6x>pmf@E>LUe(s)I9}WwT{dD
zEHQtp<WyVwKhHdG&acXF<4|_B@e!6Uamds<<M7h-z%_rZIiAueJSXDu9|yarfpd+f
zBVNKQ7e#VuOak})v8Bl)GnLWKX;fhCT{C-l#nt+$s%xa5G4M#;cmD{8v!AssJu0rI
zru%B+J0k$P%O2R)#ja@HmdM7eZRP3q{A0RumMX_h=`bnGv(10P?EGhKU+68?NLwXD
z1mvZ27PBt4=E~F#jB*1jP1dH*IO=B{>v@^lLU@P3S1=0d&{k<(ma9lMFqBk=(xM_J
zXzDIVx_9UL&4U7#15jOc0ms<}y9tEDOg*t;B15TFJhedPAQucAjOWh3J&+VjOH0Xx
zUEiCT<&WF$fz+#~m(joGyAmgOzBgl4JtZGcot>LYGp3xSx{=7J>~1J|GQbPifqhpG
zECx{c7upDWBt-lS=t=-jU-;qU=IFTJxRE7ewzFMNS25A-I5+&^g95YKPj3)JP22Yq
z{C{JTs6^Qs#I$#^Mq9$v`!Z<6-@l>fXY@J#g~Q4}%W?3Rw9MD@ATcF_$8N}9F_8%-
z9<+0AxN!Hqqs#{M54GD+$v<{|CML$)jTT|@Et`#8w|~5xty@RlqF#NuT%M<PPOZaG
z-iZk_Se;Xn*O8ogo&8LDPEJa8dS&2f$}HK`mQAU6vsb`HnA*E>LGPCfl?B6y61b|0
z;{JT?Nlz~OYF2#n;w&OtWM9&~K~9xSdXkI9oXfvA?`ME-(_Bu-o$v7d=ID0Dvv4#1
z<iNAgFR-_gJ*}t9(ctiOPw%P*^}U#xm@ea92L_u2QVnsbqR;?1*#CL650U~tg@FCu
zbnWlozsX_?5eP?sC15gZYiq&xFDF_bTKp~?BReY{W(4AA4BzTC`HsUo3KRk)7O1>t
zN0>PAO@9E0I@_6$yjo5A{P{DlW9!|QNb2p03S(1KQ%%kBzRxcr@o6Od&UeEw@BzC-
zf(MNjt7&VFTUNK642dG~5=o7B=Q9@zL6VY^t#x(hy$STW{>O^()Z!`Z`scuwEx#69
zy|>Ka_itcF$8W`rp4V`!ziGL!bO398y!!j<>MBl&J%lN3J>ogRw8F7kJXvvOGaaVZ
zl_Q6`C6rB=wRBTwYqv3Xf6D7kA_J`QGJ)U;CW{61<!BA#3$50}YyA&$JrQ{Otu7~8
zWrNdS3`Of_cpH$n&W>*|$cdP|fb1+m$hxZR4(=!BGxm^cyUX<u>m+gSE_EZ|<C)1m
z<k)(6TV20Dc{V+B&?<RR?Pw_CIpnlZ<k5d0;5T?@-|j~<G}GWiAs@w^lAP?k-)pL@
zT^@M1cR{{_dUK|w8P~NrL2Qx5|BBeK+5P9<Ly;QP53ex7^o=}up@9x2t`e?Nsgzp#
z+4uLq6UWQ6TW|K8)x^)nHb)BhRaUZwb0r@Da)2=J16XFm|8yjwGqR#_Jp;7Pf^#P>
z=a0+ffQvb+>KQpX7nM;lqXQ5)ZVo%~ISrd?^79{=m)m5RLP0t=?}ly7HDByhwB}@I
z@16N}u{!-Y>Q10n0JwAUn>qLE*RQuHxep|-Hx8FNpBi~D0X9y~%xrdEl7{Hi*^^6e
zw&+&p_->c>y7xn~jh=_I#8kPg6j|j4I3Cr<X8xfriSF1{=H6Qx`-2kBNyzVqq0vn!
z&0%#{N7Y<rXWK6M$Q-88=N`t>N4^&RDSw3#`4Ov_ALbMDrZVU*Xw4VYo1@h;_hFH4
z`m6qjM;lsYYs*I)#f3$0yWi{nC!%#c=+!T@VL?htA>hOe9T(olj*W?@;zU7fGNpaF
zwPk~Kgq0aMWxCn@6E#w)uWzRIx0_J5hsQ_y#|j={DaoHTx>?p(S$_jekwHJFnk?3q
z_BY6yQ)M-0OEEtxi&KV0vStcoveQZA@XD8#aC7de-CNcc3v2)#+WS{)SC246`J$RF
za(6na)`S4~)C`Aj4~ZVQi)0@i9WfRb?oHP}J*y&+CW~c+GAXd$%`DufBqfc)HDAc7
z|1hc;w`B~+yi(^&#8yguZtn!>eIv^cu_?kIczd~#>!)h}>1V)=>d#BFa2F$^9F{xL
zrTp0YgY`_#ABP=QIX*=|Un?1pL`w+62_id}>>2i7E}|ADyL^-hz+aXbxNwFeB7^z!
zrh0gX$k!;%+o0UtT#vdNzhCOJ#|S}C@?kvk+=-;R@(^hIbzG}~=h5YfJZ@QeIU8pM
zS4rh=Pi?*hfpqVN20+8_-zmD&P~UWOOF`)%Lk%VZlyoLpbm3gI-Dy&|b9u?!pkT?R
zquk_i;S}A&6!q`4G?l~0gm)}-m$SMAW-5%h2E^hD3oVR64{YZO{6`jB($NE5x%XN-
z5cj~=PO#9e)S)$z#q*?d7%dtEYO~}n;vkU8(#3*cp{09Y7NvJI(qx#PnUX2TNbQ^y
z^<5CM2#LwxjQGN$^j)v>(-#@wJu}F}Ue(W$DeC1ooFi^twp`C=`8HQ=@6VUJaIB}e
z6awWV7UWR|kHSMyJc9TSPMsk5PoSdF=g(j$R*>F@khlBgUiFT1JVVqI6<+b44kucO
z`*iL<9xaA5|FE#4p;8Aqb00~_gtPZMAImj4!kQPerf34TotxOm)+UeszUik`ST+*k
zLI=IcwSMqi29s69NYBtv)Z3)>E)u)RW5{Xbxm9~UqfxGJyN{LE(82eEKMA1Hv9apE
z*32%I4BL&no=xLot|YHAj07^tx9a%?)6(2K{>E1h)X{ur@Qmi^aKp>TCRsPxqf&cI
zs~)#fVdw!@YpMEm_P_i3G9-h3z99t0dAC=;;47Zf9)^J$42P@qi^tt1CuQF`C@M~x
z77R(;WY;fv3Q=Mm9pR9%ZI0G+279M`B2ets0Z}}bjC~$txWKz>0F5j_eyPYKq%a%3
z|Na`;h#%_fv%U7vP+~PF;Bv>wrY{n|6>(lqu1bn}T?~6W6#h7bCxUyvDnPqcLY(^N
z!#QdsHg-I<0#sdIQ$?FCg#wZNS440^*Z5)ZLec~#PJM7b=U2t^*XuwOGm3Wz<wGs?
z396(82>};gTlhg%jLP<ruf(<el4h!k@Ak-zgXd0sS<rO#11N}zeQ`kpzpKg>M$OvV
zCIo7zNU_^Lg_DX5o>GN+3=hMF?>0O6g)frjkKtzSL^u)ZiivP|nbmOm#YvF^l-Mt8
zE>E78T-78r%DNDiZDz6)MM&S|zQtqn_bUo2I$(1a>_Yc}G;T1l={z2`{VD7k8X7b=
z8<Nc)2Z7jOxo$(k2R|?77u&-?3UpJ>TU=8SoU1YK`KVqXuNeNduo!s-E_5eNjpRd5
z>*aDR0ALnY)>6RY0QQXR6>mL#WikaE?hhUuw}HO9mD5T?O(6u|xzR~~w#Ja|pOT$&
zRIubWJKLyaCw*F1eU8zFsf)bp>WB3q;rQ5C<=0UarQaUoQ8pB9xwv@3u;_%iB@jQV
zrgzSWq*)46Rex|XGH#7O{BWw(drp^)+MCFroY=GTIJ}$;$NcpuAFOiFmQ>L*`EPjm
zC9LLMeUHAbCVO3l>?=>LqTynZELGhUO-)iFS$}^6OZldW9k+iIel0(BsLyQP2%=zi
z$2=F!K70NjN*hh_FO*-@YfNf&i0k!XA7-6T+zbi)hnizJS3l-aG4P9ui-B5SzvJiT
zR?pIZ^X83)1~NE&PG^0g<lx|7V33v1GR8%Tr=Vo}pR<v+_S4)?wEa~jV@!yBcac5M
z<`O;w4a0!j%cGCkA}-zTO2ouO;Uin1zmorY?oD^~^q>Y$?2PlVv$A4Aws&^8yFm$a
zq?VPGV47#8rcSumSik~tulyytb$DN}q>?;+N-2_zyo9CxUY9SENR=rF<w{alEn%TB
zPmm}F!<}baa&30)D5{YR?$y%2R$g%tNr6fmzHR6@f?eBGL<SVE2*$|B<k{!+aCRXH
zc{Cq&U15{)-?pjq{*f;VgkF}s%&Sp$!#3QdrGKy7D>@g=Z3MSq)4P)Eom~?LY!K5t
zbw=Yr1UrOwQ|GF6wBT3+-i)i5LNUPkW9b3yEv9nP!o0iE``W2cPl{O9mnHw(*I0*p
zpH8%?CC$Lf&#tnlqLhc3$JXC5^90h45BZdlvMvd2`}cii)p4#V{h-~l`Y{SE9i5ba
zRD68A&(|Ofk*N|cM_1w7$DJvQg4-9tsy}PJpm+t4Ovg8!VGDfz@lQH+F8BW4Vc_YL
zJmxpIeh<Hey;d??U3=b&^+<DI=`gdLoKo(D*oYo2%k3p33U!%M=vQ(b^ln|rfmUm1
zfxh>hw2-wzh@{_krw!*OE=PUykS=G!LZ`I$hC3OxD1rsM8)_DMn`>?L2(t3z_8;Rv
zf{8xpxF#L_uX!)P%=uF9Fq3g3bWC<C=yKuWcf&WtL`nClt6Je~z$Vs7W{85&><^iR
zoLgg+Cva_{8HiGN(T=a8OXc(aN^R1D1;xn4Th150Ip?ACV%&6e+}uk+it>3i4Gj$z
z{V74EY2go8;g}JU(1<TK8E|+;k?`_v(EBNsiL>LXs+t-;{qpGDTnKc)b=BC3NL5ni
z{caGOMtMWSWjBQr8#{ZPL$oA`03XR5S3+ylI*oU6N^0tY-$KBQ*KSlxpCpDfUo!Un
zj!*G};Od%OEE$!U_o3jkSuWV!&Baaz*$n;zI~)%8J?cuuqmg(L^vZYvu31)RKlOJY
zj9*36`!KJ6&Gz~`P0+0iSn6VbWygBI`5!*{4H~cvMSwWILFYHr@yr6G56XuoP<aQ3
zZ$&l=@zkW6*6^}2uiZ&?9UV*vXsCFx<KEE6I3H;wsWti4HEZkY{&B%%BJn<_rlP)d
zaM-)QyJ<0UI!x>9>oaWjBz^icQ%ww{3;+dlj`een_~<;E@80dsHjXYi|03%-kcY#8
zfW@nc9j$hJz>$;hcS0kQlamwm+-3RiKcdIHvyK<@Eq?e^A|zsY2!yJpW@M+!;i6P!
zAZS8k@B1r!$=f%S>z?4ny$lWKK%o4^YGGl~?72sTgZ~Io{z|5>b7>OL#uu4LmO_ry
zoyLuvOkS&xFJ)8v*F2l;?Cfx`v7dC7z~O&A3|}jIczArTQ?Rkw`bZ`Ek%Yt=-V`uX
zhha4|``uK=!lJNETV)jTa>C;X*Ss7KkKxwR(a|w9WZ(A(A%HPtcfXaEN;1%Y{`Lw?
z(k8;N*(?(w?B0Z`ucmnQ9|y-h@|s*u4)UV<grS$k`}bl1ZhGQr4#rAHk$b2>0uQ)3
zM{d&r6f*C35EmPZBN{N*<S{IMVF1#CfYZEzv2oBr%LT%q@wkU3h*H>f6?wz*>M5-X
zqr1g0{1{6KuQ`v2u~H2blckOiU~ZgMRaJqf7;>a;N}Tp{whm+oS2s0@2nt@r3C{Np
z4#u%3EXcfS*GaLcn7A2Ha07VD?XjH<hA%BUUSKSfQPgriZFjOU4B%V4!bnZx>g&W#
z%gRSlu>J_U>9k67n!rm_>E42PiEY<Lp^Z#ICu*Mey|J7>8?1(Na*>;gf`U|329ejZ
zwu*BD&!?<xY;0hajcywpMn5i(dT5@y{KXeP{d2XEOG7&O--{Oq4J#j~r}bjHc<la_
z2l!neH!>=Gq%1`skY^DkuQv-o?K3hlP4Ar}Z@UbjFKF$vc9Z8G_?n(D^4t4XKi@Yn
zkR|9e561f%(`Ke<kRGhZncxBmm8j=Jz=aC%!|58EBxbe1?b2d&eCi({-nQQDIUyYu
zRB$q@2Kwp21DH0!IrmWjjmX<KgC^5Z0`&MBl-NCKdNu>0G&T-SuJ8614u??C?qucq
zz-Q>4OPn$&J=aEqVX>0|@Jz|eMbx3I41T*DzkT7MD~nXae}&4aqWcXi0Fz@gj!Jf}
z0g9Gu?Ud_Q>($zNT+DeH`yX{Vfs6^<y53=?Xy<xRa6!!f@(?J@96&9vS(hFVw{`$&
zH|_lIs6mi=#`8W34u_hzb26!BHTaxZ>ZUAsuf$DWUuH{5t0x0tf7mg8xIgaa6sI1x
zc|xXBY1S2nFX0Uet6Z<~I6;A0QB@VB48LsEja1`6VY~BP<jMMKHAzyQd(iA0O`G`-
zKd#pQ7Akw~&k8%Y1y>J=*mZ<snTcQe{{$n-0WpQM_4atAK*6cy>>sN}5u0J1J(!jH
zg+M<KkJ?xHcm)+dui@XnJ0C4~Ra*|m#K$AA27Wi~WKzjEowlop=1yhPb!~tARP1KA
z8uI4t+vhbHxx?D(>U4^KLGL;OT2xG8x<l^&0+`aT^^K!>w+hT1lJGT(RV`qjQ&M6=
z)#31z&!4gOzLb~SKZKwn@#R-Eac;oAaB6?8?Ku2*5;O8-S{(n|yU`@;tCy^Iw<nxA
zLH8flXP%fJ9vagt*+@%wJlrijM9+?Z$m=lq-E@5*U8_v<hiU@cwtj|C8mWIZHlvPB
zTSXLrVb5orFd#!dj*j~<a$ZnXqrgT%iF|y<4_8j*0OYG$T%DJfS6AnGeF_4U3#huG
z-d-Kh&Oi}8408n>GT8b-oKsO$Ot5Io%UcBGz4Pyz-(m>HM{053%|Bn#94;=H%f{bo
zYSx-{#RCcB>*xd(CE~FUbk$oirMjxh-{>F$mjcnUp0T^T3!Vjg#&0`PzYtR>WV8J1
zXr%|Al8=Rvu@C^cseSznF%glh<`bZ#_%wlo{1ab`i=8IFqnP`5k!t_y=~2rR7~DDA
zpKlR`pZ@_twyLU1->F5@z49|@7xEs2Oz1t7+-AQtwGBTfCWaDVYuU9yV`G*x1sq}V
z@vX;wFD!IbhkL*4eZ#`SiphU(Wi?|j(4E$pCB#jN2`aX^$?M=F_r1;DG#K>V3e5v@
zDu8D^EZ1q6LT1726{%#Ji|%{zab)Mq#mv~((Q>AV`MCP}UJs=6PJGiB1Qj?tYcTRr
z=2ql=FThbcC1&hc0&_MF4%P3jh7)q)lyt96VZdy<%m}Ye^Os}baEV+_9d-p0eR<4i
zGH!9dbNkUEm5cqklamwkFNjv&Quu$0fB$@uDSn-vn4Vsm{nHyoQ!^<kF_iP&s7JSs
zS)!yAGdFi79InLH1seb_j$LI_o!o}pE|r%|B<(MeJ7`I41V|gih~b^MXR|yei)|lp
zp3ZwM1awB=>Nhx>7OQ3tn7a-oB__%?*1vqp_FSuitK#Y%zl6kmdFo~pHJcd6zET#E
z)~1|}8M%2A0(paK@CC%bc|F7KEh@kCeJBGQ!N|<4mc?Z{d+AcCa-k53!9_Y{1#6t!
zC#07z*RMzD*E>=O*r)N?B(n9Z7Hd!n`<`x=RERaa7(llh@(B$5Ik98d;(G>U$n$Wq
z9hkPq-gGT^5=W}t-St@*2ENfx|HjTGt|tXRBY{qXh;Y36yM5GLdDTlF0@48|r_<@?
z33Bhcbd;x_`S0tq9cB?}uY>vQw;5?^X-P>Zb6yK^<h=3|XCP=CAx}*!L~uJIuU|hB
z>mbvgKp4LG??2CjY2<#mvz>{F@$t2d4TW*)ELE#`YH>17BM@p9NndEWZ;$=9t;MEs
zbsmY~URhaTEyRoL-1Fqr`QEnW-d8o->~+x5(Sf{#4kG)bCL&^DO-+yHxvj0Od@%zR
zl{ix<@=PE2hmQ^lFUTR{?wfyr5<HH%9hS?@<@oC%Gg>1NaQ!+<=*tbO=0;q5XAsJ8
zwyKr0{t)P`akwVvT)?GJfTobwX<SR`Ryo{H%t3#XX-Ku_F|4_Zbj4hFi<v1$acgSE
z#m5I7wqxXaFGm9{beyT%1A->L0^`M`v&s!PU;UjFiAM!ziRoDx;bZ6JJ&9({X#g${
z);K34V;cOG>Da_t0`J+Zr%yQZ1RD4{gO8h;S)t}iyd@RNYdOG}#BA&~$RBWhS~;_a
zbjwjSagP}oIdWSPh%7S#4vq~==n&`Tx#x!oZUAT=%Nh!K?uuW`D`O(>k*BGNi~cQ!
z)U{`?{(^?f1gtf3Z^y}W4JeS3(XBBVJL(_+_sG2o^70XLjx^k6Xb@QQVFw1aKY{t}
z0Pir6`NcGHa`FQCxTdT1OuvhLL%p}i`?IcW&9~f$gF*-99CR`$m~{f&tpNNS9Bkw5
zaX*dsVh9fB59a}(?1ycrAW2+Y`L}Psl-?xl9Lf?tiJ)+Viu=0vsAiXw^#h+yOin)4
z*0%&5%gue1QC9IR;NDtTE2dRgt6^0C&&~h8xQNQnnW<=0;kEEH0GJzT2pR@HwLxoO
z3l~p~<D4GX-CBRDa-#cw<AxGp+_asoEs)Y_ARTh*vc9sQ4d8IU^WES5{lvbfAS0je
z&mlzz05uk43j*PIb-b2Q6bA$x<a*E?kGw&!sI?hol70o=&iuIRpw0;g2M379hrvHt
z1k7YQTy}aBXF$$yX(Ys~ZEOOi4z91S!6BrkB)e}-d;H0hLhk+eNJSxN9~B=fx-sj<
z%fkaP0SZJWxAiG^7<#joYCK(Mla!P2#cq0=-%d$c3DI!ex6%_oF*bI(JEdWuZA}e^
z2x9X|6d^q(9T+-@oZzsOx%WZ~6yhCqTIcsX@ySJMfEP-m>eTvr$mvdzY8&Z-gnHoa
zc`zaa(**`%KUFm_FaVM%Knt&}zg=dP(59beT`@okY8@sVdq2^Ey6@`hdZAUm3C#ZC
z{thH$?Q$Ku{^LJ%G9VE@fpWc^s4)(_DzvM2Z13A(WMl;F;NEO-MJ0+yC34EyOQWo;
z3;+PcpbWReBl8}--MN`63uVPbwir+^4B#vJu-HWEKvM0f(E4%91HmCd0rW#Uc@U0w
zlsYU!joUl;;dA-c|NTDAk%QOV$Z!AemufE3{oilfJl%-EAjG(ej2R|gD>7I9Pae_+
zJ@FQ+Y}*8nS!#W$T6_XrS@5aGO~t4(XUi!FnLR1*V30)}^$`#bpS{3)Rsa>dRefh{
z+zPUix`Kx0IFOvNfB)`X9Gy<q2SIT}vzKb1-c+>SUk|_AYF~0@)30MIQn~+Py)k51
zriF+Z?93&mMs9L*TOWvt!B$7@G^><l4?>T7cWwW($jMQN`buLpwWHgjQfHuYHE8PB
zm_}G6$W%9=_h)Ntc%?T5Rpem)oazhjc#T`GUY)>Yp!#fNBsi6K^dtYi>F4_0U!@xP
zmgeU_7od3HJ$z$eAZFeTLpJ>OSgE-0>E&vY8f0<1tiq_yK3!-L$Zo*#Z)W7lASB@d
zp#s`iiahNLLf8s;n8e8dZ<qqoAqLX8Q8Dm-tZ$daQ;DKOlvCImw~8`<UM|P-g47Bu
znpazaD+#d!Uhx9?NdXWNPj@DednG|tG%SYVbjQ=QIxR@FKQ;=wJEN0{cmmcPU=>b^
zw=YmZ3_MC?uA~(Aeb*KSSOEy#&DjoeTfGZDw`~S;6ILOJIiJB$K(405i)8CBu3seG
z@CPs&hK}2G9P<L1Y;O*l)k?m&Z48Nn10NRIDgXRJ`_W5N(<J~mPk~K1&Nhr}WY-7W
zc)IKZuJHY*YX#cx7921Nq?3y}@N%g*$9MaBry^)2POz`P-|6SoIxsFL;AdbC;#&Sl
zGO@;(LA$rd?H;a%djLR@zG%2=MZwP~`UdC<@Cs<a7Yeyv^VP!=`dWG!$!VAE7&KAF
z3w{SJgjU)7wqqqj*`f=6!{VU-{_({T9D_GgOXD&HO$5fDRb<oik*XQYtnbCXxYZD)
z%BbUyCG?7k9oI(7;hYwrDGD?J?x4d!!P&tAklR?ho*Gk%xNp|%ATnKU_Q2Th05KwL
zrU4v47L(K@d;qRc16ySV-Ug6_crDx5Z?6{MPzyLzAQqfBHS__?(abS1F=Xs|$%%=_
zljiYVV^Qk_(y!D>3@2J|_HO_-nt^wWFwK(RLVkWZ=c)}=+c@CNJYF(z^>7K7LeLBb
zK<{oDARL&l`Z>>;Y_IvPGv5y*$7d79t!qv}{R4fzM_o@*OwP8)k)a>CJHLm@OYH7+
z6i7!RgTrit3#b;5d@{v+cnaKs{sGx{nuC89Vw4Zkk&;bD3*4&}M4tTx2i>#&73;d-
zo&9IVEd<CFcE6$k-c%S>TaK;|A~&*pjpam?mCgL{sUEbX@Lf*_RH*ps)#iMGf~%`5
zU~<F`uhmc%pUqoez3F(#`%QNd!E)mYyXlsT*`%z*<F<ix^X`vx^-eV1LXwgXxevEi
zW@gJ^#Ei43pb!jeZ9j9pRaa7odp2I6fS)_;b$2#_T*Zx{?9z%Kt~=lA&$mXcKwgv%
z&l2_8mwRgHJ|w&WY5S^}Bmqc*oY&GHJcF27m6GQ@CM3&eJsp#-ex}9$>KJcthEu<8
zVB_Qta2H-AJ!6Xe{A-)X=CNH>K@ay{^MMyj3e<p9$0!sRC3W?h+-*Sae>ix!k0)@Q
zN@hLyd4oXg0J!6MVh-NEwzl@ehYvuR6qS{$r|jd!&vjY@@BS-;gJQyklxcl~my}Fa
znk#5(jsyJg+?`Cw%<LCx-L2|Jw4Cd4-`7qU0ZG==)C8_W;TIp|{|OQ-7yGjiz2&S<
z-<<dugvsVP4mRGZd}xHax)C?%FBlBQsGL%6)Zz;kl%T|xyynmqxzFkegz{w~gOZJp
zoSc@Yr-8p1WODEPvO#DhgO8C>?p;m-1M8&Q$eL?3QD1~<6gO+3uC6X*@#ISOtcG^@
z5u|u@3a<I$NCk`*dFyTD4xkr5`B+E~^WbntC@Cqau&^*tO1tt)?Gr_k6~N|uAh4#S
zq<B6X531-%%1)xc3@zHhq(gp)=MzI|QB%{<Qo}}$A0QPF#TgWV6~$a|VEbd4YunhA
zB6dI(nS%f(v>{NYnQTM!w;RNazsSXgcgM6n94WFCS;ar&clrBk(*Aa235D+KR@1}=
zYH-Z)aYjZ)Ru&}$ltaf#ykt&7P9Ugr%=LZH4WfFNsB#(@N4kk$J@;m4B>X{GXaK1h
zED}g$?0PjN2n1e+S9lWyf{G4Y)8u6@uJto%mfm=l!sYV36>dR6FR-l3C)c<XZ{NP<
z>i(u*PZnS&POWBPVR3W5mz0#Gp`lUD!;3umuqdZS&DG^_=esDbvU1DuJQNOhaXF%w
zhoy;KEuWsctM~7?$1M~)EqpH1A|)YVU}SXAY0cqg>URZ`E9fwd{7@)X!XwD}?o_An
z#5+<VqENZ@ljCDPmFD~Fovy0zm(7nW^@KJ!TQ1F%l=^_wTuql%#GDcIdtaIp6^?D3
zSXfyhyJD;)A>mBi{FI^%bt4$-S5L@zAogq&!Lnzw)nJCEk&%Sc{EwdjH#yv^Pr$6*
z=SNceTDJwGNJ}4#l_s(EBhQMQZjAzBh1=Pp-TdMER#eozae_<DR}$13h|Hv%z+iN%
zEmg8bYC)2*`-i~oZvEG65P^`frmCm)gO`;N?<*NjfK<}8?girRqH8yde8SLcjyPU&
z2t~kQ_VRR84F}Q;y63&_dKLiNFIK}jG5NEBH+vUzUb)s|jD$R<%fG_I!;_Y`0ue)M
ze5oole{NmwA%C-G_V!1Mhm-p`cIJR3{V1NW;<carj`YDqWsa?d)(0@O#H1uFI&EW*
zaUdZcdma;U6oNy0p2qGYa?q7Lv89u%?d@%-InaY!U<XLk!6If7qWoBC-cx5cF|_0y
zH6BV}J6g9_zYur>Y#Cu#y}lTN+%a9P_icQ9ocq(IOv1#@<Cg{UAG3Holze@C?WI)*
z(m%{GSyTTW>g%%`MbDT`7kk;>m+{10Pra`-ZLI{}yEnRETaB_Y$eE=JiUy=SaHM2U
zpKh$Kid`;-O-)UKh-6%CIY_E)Fj8%$28oJ|-TB*i0%%*W)^@y9qxfrhxKtPhGXuk`
z#N^D(nKG|~)zwwrNL*1Pf8@zcU=;V+K@ZLOEQt)YfJ*`KK}>4({7yGVzQ{zDJbUf$
z@Be^;>RMHeMF-yP?&hL?W)B!W@Gt;h4uGe?iwN3JE&}r#NOJ**19=G)mY9g>Bc(9U
z^^X&dABP=4Xh6&^0_$$r<UUnvH&L0Nuk}s;Vtah&YdFa~?K$eBF%~O)S8Df;c7kj3
z9Rf@#dHHS-Bu0uHD7uBLo(P41<5p+TsX6NH@5e!J6{t3|16rTPZO+5P)BTaEA1WGn
zdzs9tk(ii-+&~Wivc>Owa%K7YY%en_D=Q~Q!uk)bZVIWc;|#(O=p^XDNPHS2Ev-7Y
z4b`&o>DHj2k?A@xe9+#I;Q1C`uwb8)lR==Orx!P@)VV(0O3Fy&asHE+=6{W0<{1uZ
zeW!{wRn9?|MqahJx(WUtH#ea<8=*92d%M!N5WR0f@R)Dml<aJ5WhGn{lcVqcWWKFM
zq&OM}xo_p8#7m^kemPNW?*vnf{7p9##(pgi!S_-QXmmPN?|-*G+#RS%-thsTBw^en
zerELi%5n_F=LAm_*B6RbuoI>npNZIb;4C4}BOo2}hvH8Py&<rAbK=4{ZK|$jziv91
z>EC^;409V|;bkG+>F0W4II3wlUaP^jX{f7vHL51*u{V9T*dFG!;5JMJ>J^Acmyjjw
zS%Hq!L3f<8loPxynrj0N4>1j92rCappjzbFn8b%wGq<hdE}rF}*`Y(wj*hU9pNJ42
znh(Z>WF7te%QNCOY0oZ&vK|%M=}f%y1jY(AFL=u<h_yxeh3mKYEyZYRNeChRN7~g)
z0=(!qoz>x}eZR|D@K6NsDbw$9ZeauU??s--DeyRoBncK~@R<<dhmlfSbUzxk_N@%L
z;?Aa!P@P<LbEM|JT)Yp0M14SHCGiFwXN!6brSnF*1p)+C%asuCMlmNTC{m2c-_XFG
z2}DmNp7shMb9gyna)W;8OUp>*Pkrc{=f)YO9B!^)av<=Dr1xN{2g~rWl3GJp80&8-
zj)c$IXTw4FNhf(S_*hui8Fq-HYD(hVB{m3zuJiDdQ)olTn|J-9f|ZId1I2jayH%ch
zL*l$q_0Qb|s6A;=V2f>G@mN1l3PR%p&Ft{8!=l;>KRvWAieElpOR{b2h&>_mITc-6
zzgj{G#>~tm=qfS|q%{kqy}sr9@n-euB_TFMT+oz6FgH#*c=bICsDUq$)G-d1(5_AG
zwy<&Z*7AsNJ5q_JC(jz*i@aa&n0bf@q0c*{Whf3A#;Mi(6C}iT3)ww-qm8P7*Vagk
zV$S7mJ&w2QqC##ggsJ{1Q~0UfB3ocx7zC?k5oIUDr18n^b5Wf7N;DtKPad=+CZEMR
zt_eHt9_{wHYe%6-Gco-Np@)#!K3xia^dtSTto;$LVC)_fdVg3Jo{UC^XfS!UP#Ou-
zd-+K8UQFz16jYK6{bcXX%tc6B+pbnel%N<Iw&`lZN#|=ax&av)VpX$1?=-#6u2jpH
zct0boPY412ZMLG~N8nM3N?nA2Dr>Ch+&88z=CA1uv)d2WrupE;^l0U~>ErTyylMAv
z7i}p++#iP!5}FTMdm%1={88!!Y-ODm#blkG4BiWz5I81U>xPd}2BW<uc$AkM2`vrf
zVZ*O=l0E+QrYu!gdJTd`Z}QSd$mydkmmSw2+ER4nv?mm@-lk^KbQ*@^{1NpD%~kCS
zUbGv08OqmqF$9kPEwW3y@v^Gno`eNgFXqM#s3l`;(78S+4ytVyzp)@gl@8{jg?xMv
z40Q*UCrK|x@W`X~a8zot5{rSnFTPW50s^6BYv5$TE_wEfsDbjkIkEi$1Qymzz3aJ1
zi5bzyb9kk?CLhjBA;(>o$K~_y*TJXsI9i?WCSQhkGJUU-(Zjj)&1qTQ-E<vVzxD0)
zP$3R8@;xf#1$f414dKst(J6oCoXd7q9R5Lw<5{^u2xc&P*CT%Pn%QzxDNKDw|G<I$
zNAqLm$JPWh16NYe4^lkXw|1A8%`Esd!`T$MpSXZ{^4tB}ooT*kvKdtsIPK+v0n$iL
zCdnKmTjAus&Mo@$L`|Qv{1*Mc{>7yU({<%Pjrg0kn0_WtgiyQb=*Wj!(e{I|_JdFm
zEyT-7A<u%j3I58q5%Ektc@v(S68Y-vixNgWfu9U6ey9aPuhw-6|NoJ6mSItSUmG48
z0SO)HE<r#kr3R4h6zP-(>F$OfEg;<;(h|}oARR+UcS)Ck)Vt^Z&cz2V;>6x-J?pv8
zjw6?UqMoq!>VVaR6g!ppQ-Opppu`8yCrq20CDP->0#Ai_MIj2IuBVc5p<#+WPu9b`
zM=k9!P&I8=g`pYQ<47t!x?%TkI2ZoV9=&+Wu$R7rL385S3T!loGwILpoQDA9M_;Oc
zN4Lis720SJ00j4rYode|7k2cPY3l0gjJ5W%va*Q52T<qxQiiCaW##0sv9La!+n1df
z?v7VtU&BrwB2NbVR)6U~zP|K?K)m%0p-gB}Z=;A&Fx<KXl)4Ux40|<lN^>;*QQQ|5
z2Hd4lt!X<k+5M}@AP{7E{60)H(O!H}Ou8r(1N0y0abK>(IFM2QqZY-dk%n@1Vur_~
zGX;yKB7Y5vFR?TU{^^6n_@DFxQjjVeBj$5dh&b&}Z!&s&FGg08xV6l#W3<@kO3?~e
zaNb*-nr>sbQtpfwJdTN6k`~Sw*cd>HtWSV!68hxPjq!*zh9i?$0nSB(gPU+CMnlK?
z9VNG{tjzCjBbR5{dqZ=ALzMmBaq1WG&OA+S)D5#T76j1V9<{vvh~|HAZ~y?l(4fPY
zWBW`hpUPMBVKwLx5sf7c`1uLJ7}-S4mm#MbA`6P+6>k>*F<tPXKvw@Obg>&wx_nt8
z)vgcW_&`mA)~AoFcl-W!)P9s+dMt3#_~c^AA2M01XsFtWOo9LRJ5?v~3#vEmz|Kj=
zQVJUPMU|EP$@cxXSJAlq57?(Sson$kS1ZTPGuZkt^HC||{;15GPWiB&01n5g>3hVW
zm(kprb!C&;Y~_+FHH0XD%0EzA#lYb4=X0gc3k`=^UPn#fK(U16dX2VAQ$xiFsMD{~
zU@xt=o<ZzTf!GcMFmvFOZcG)~Y>$6)ryFnnjrlE4x}XrS;wS)vLm~W-2aeKM)QoN<
zylaHRM5+T7;R`H{C>C;vCyltne#>qk+=s45AR@V9FY(=h@l2dm9~Ou|0ttEbk!h3V
zd2@KbxXOzks~o)UMgf0+a|<((zx$8gVN|1B^K|(8*lVp?DBYb-oi}0_8{9X)=fy5!
z<sfw9-)?^F>!!{4Z<WnffaxbzP(&fszW4tS551cAE3sW)!W=h$*#L%L`(1Oj>}3bw
zkZTO~-LNarx~lCjxUCC!m|PMoGYc~kq-yqdm}@MGO4t`T>VA~MrEG9hAm3q^Qy&ly
z2*!jTS=#{!Zbb7e^8zUVUGlmw(U(pYTG(7<Hk!eQuv7sk7@wXy#-C8L@_F3Y&k*nO
z;h*upH^YYb-`RHZ)g59woZ@F=9`Xl`Veh5d_sy|y>i)8Q(u^KHU_TelZie;yV5FH7
z3#+)Kx$NKBQ1Q`H%T>dIEg7Jz5wj)WX%U|1nD7lHuf^)!&H0M=`BRAdV-Vi5-{U=*
zUGwQ`ZV*5hR0uJ;&)sRizV}`TIKtNECO3URDmO}3z@qKdVv`eMg!%8`JYVLhOv1~N
zw71rVj{%4g*I3~PCe6;e{VD(}=X2)S_dlP<c3d5K`LC81XZ_nuh^=ZplWknkQ??hU
z9tDke)`dZ}c;UxGNJuDjf4~)0<6rpeGY=M87&VL3%j)LqRCfzpsrQq3FMh@ih=x$B
z$%v>ZiFd)3d+?$Io<~H*JQXHLy+^@EO&sr$XPW+f2SM&6UO4;<Fm~>{x$xsUHbY@y
zabv?$R}e<Ad}?0VpQr`feRy$f@24B!Jk9~=WD9#bgQNt%rL|%RiDMlCbl!SCD$pNI
zHrwp7uVdR3!lACBFJw7MFQvDHh#mXY_rS=0)2JFA9*)bGbQvD2`c`poKbjGkFNK6y
z_o;O;!jo*^+cb2T#pzN8-$V7s6S_A1|LNQ6-(0qbQ)%(;z>ObFf16#gZEq^Y87IEy
z7sX_*EoT~>saVMJ{Igfp{_oYyVZCL1UMI?X_nEru53~0qvY|+r0Y<0~d!2mJSSF3A
zmlo7N&gc(N$ariP>pafq>#YIx?l(G;NZQ&S$-U_?sn@o7x4^UF?X+Lf=nHeR1&jom
z2He&=zlS@-(0?tfR>cfr1l+hk2F)K*9O`rXmx6_Vn}^J3>YMo+QA|+_;K&h=OhrYz
zg(-cn<HD#cr<<qevuA8q+I@g+N4(Vz_<Tx_O(RH2Y2}UmXxN7$`BdTK1c3+Nox)^&
zWQc+9P1CO?_s9FWRFc$E=F&`lm%Fo}H^<HAqo4`Vne~I|(DDKlbJNf`cO+8oc9@0-
zI#mkFCh#k#uEUYearu#CCFb-3o|By)p=P3zck6CGz3$3y8dpIP*v_cZu15@sZx3Tk
z!r@996EnS$L>eDI3WCILYHEVKXZE?ubSqNK^t`{=gH$_i4Z1CR>}(|);6~Etho0^g
zXFHA}R`I5!TqBmX@;h5>4JP*X_73@7)37Nw7W+Lul$Mqf={c*|+S(c!<(71<+Vc{!
zYO?RQT}c9>`(0z~b@`{>ey#gkRXZs}GMe;qGeHTFbluo*$}1|SxhtBR=hy6Ug!jw0
zr@a1~sH&sVW+ja6=K?k$K7KOY?xEv%1~(a{VkWOLR<WAo;qF8}1-~=EFD}2-)HtIW
zO-K&lKQuJ7w{PFRPToJs6+=9o1~LRrEwR>cadB~XcUO(XW4GM;sTV7XV@Ef>Ambq8
z;NbJ9N0ojX#NT1L)L3dFh(<F#x1^**YAkErX-r=*gl;~k4isxZ5ex$cb2=ZVL6CNC
zoZ^tZ8~!vX!lQLd7ENV^E0nWc{dwy1=yHZ#TCCo7Y;Njo3Eu|Yhi<959%nrz85t6e
z_444K!EnvQV{k!jo|m!;3NQTlGZh>A>1I$M&igYJbp`aQzY7qnkY{FR$I^MK+S`2(
ze%G9yo=QkafP0meRm7znAm&O=lfpELij0UjaBb1di0GZHw9%RH?z5`LrQnAmFPRHc
zDt%M0$Z}r~PvtTPlD-K9hJx4LFpA^8=qKN-OB)E{AoQpFrSMNDCk8o-i-^^Xh}XXt
z7QX%5^#1fPFON2TB<br{6Tq2&4{xjd?jt!E320elwX{;1ATQpnf^g+`SpT`IUqAOb
zF)=al^14t|mgH)7pHM}`($bP4U`9nMhCDnn)_S3`V#&6ugo((&Dov6Z1=6y#3=k7k
zIs)F8@zA!FO9Ofs)!QFwO6zfCeDNHT%=`28`=-fyAV)Q1OD#qnv`ZuuM*-IzIW~#6
zT8fGy)6f(5tJ-f$S8Fz=hU1IICnRujab<h2KcSU*MibE+pO&VrrnY(N`CK8yow?A=
z@5v5~g$sV@n*24X!FnZ&%k|*;v~FsO+AeT>@tDK74~Lk2b=m9KXE!&j{o&ufeJY(~
z@e5)TElL5zUv8w8EDX{yX;N^Oe0oT=dc9`Ri}`?GA&35y^lNtZ<J1SG!^Nia+vAR^
zZ{NOavI0@mZFN5_Qb;!&%Mt`l1U}!Yn*Siy^xmD1#Zm|~m<|zU&qm^xRaM~)rU+##
zO=+q_8D774ZK0qMCvj@hMV5Bfb8A`p^cqGPJGO)3&r;RuxHKm02dWH6wl!cuvbil)
zwY9Z@t{~p|&LEcryBHS(K9evsX1}t<79=J%(QBB#ZmUrb`bz1R$6eF=b&YNs<Kg|w
zzTRFvufw-^u#@+|gXHBsROOzJ2^%C85b3)c0eN5Xdu$uqN#`^j1jTE%T#M@}Ki2i&
zx5L&)jnvtoB1_8HFzHF43i_(5XM-$NU%!6+Jl9-bTYFYJ^jc0@+8s2a>*3<fw1z>`
z(h*3lsMD(zzhiq|-W}UU9eCYvc{%8P#P|=$D4&0&#h{tJ)<Phwj!mdA_CDR$$@DV)
zu@vb%c3C}ZAhqRWWg{+Q|3yo~x%Flj>aDL<hcPN!j^;~#<9{V05XHnkHf2Y?#nZpO
zzBt}MJksEhWi}sPv)^p^Y$-Spob%(y53Vp=y>{;#P(yWfb-ib_%qd{*)j2txYxct+
zJARRv!>(ifm?CIl5meqMT|5SU6=i?MxyHWI@BLcq*@>mh{Q4CY!oa|gnwlDfffv(?
zI(^yQ-R(5W_ww!A`l6yxCn3j8X{{t|Y-|uO2-^gbu%NiG?RMFVMZFyHI9JbYNdj{Z
z)GH9v9gh#U*rUQ761J7QunABbudlCxo~)+ZwU>VTM#k|;+!>8la)j~Y$H(lpecZ_P
zKg(|O?_86Yzd;je|3jWsgL)CMSbe^cKVV3+h+weFlYFjo=Nq18!EJSbW-L~dERH6Q
zB%+KY!vA??uS2-<v$}Y`<kRfY+mq`~egOe4uVas6zN?I@shOD=sz;;rcLb;bVrxg{
z*q-TS(^(&CrkA^rBp<I1=JIFv^YikWT@ST&b?@Lx!ltICBR3atN<q&~-s0qB4InVD
zSXiC}S}ZhFeE;rbXt+A6*YfvZ&I#1GlN0+lZ>s+L@4o`EFxTT{J)pt4Vi-h3MB(DK
zH^~OAFu}IgR=_&6baa`SnV{ApMv6Yq)k=Juey!8MN=*%cd`V9ydqJ|dw<V!61)AOS
z@(=iCrb5SWx$a3%HSjEAZ@rMJ$ia~n6=Oghb#QU9sosd(BSIC4kdvi^LjUVsmkR8{
z=~0GCz@Z9osDuhsMrBh6HOBOqh*15bM!G;(mGpRekxaxVlA@eyb{Oa6AF4)m{U*n)
zJ$Nx51wVb%p4<36PcbTQ=jtN8OnlKEP{nh$?41G(B;+iP%|G{waA#j%Avri_Do#@O
z`zLmq`@u84U%xb36c`b^UjDmWT+}`9wWT}!xW2i$xxYW;L{95`^n&_*r}Z{Eykp$O
zkhpJod3j3ijv_$qRYfw+r1TyQ4Nb06wh%H8rUm}9aAJ|*8k*G?IU>UE>1mz$DItcO
z$;W{S|2Aiw=?XDwG+F8GFx}^=6<Zvzy}H^Emt}^hkX|ZHLA85{9*60t9=_hf(HAWF
z1Nou9(_t}<%CE@suT6F?=3+#@!`)%?hhQVEtQ`mP+hn_;a&s9y`zI&<D3A#YZWW^n
z+HUO*<qswSl%xcppA!-iFrJcL@He-ao0xn}O6u$H@4!8!LVCnc!eZ!gjJBFTgFRaD
zydnv8adT;CXc%sDN;XUJb39A_(V*cgV0P8(?$JENX2R!ols1ds%3;1%rBt3D*3m%a
zp0$Alfki;V#ZmRk@?rfBpqx~RlNS~hZLf9(A(l{177V1X9=>dkd|ZRrs;Eo=$9R+W
zljwtDrgn#~;C%#?0u@HaIwUHXx0AgSjRWba*6`A!m+|B|{VzJ=J;&77?ORR_bV#Vt
zo4<rveiMx_;V8-4)NCa+apDMSyEC$NUPabtxtO20Ngq9Hj;OxB9Cn2D*N{KfzMZ_i
zIyL~6nkAL!Riaf_Ae!6JqQ}zn>VksJwyR|UufOHGul?j&!!&e0>SRl+d<`Z2fUGYJ
zsJ-Lb+qUE3p5G;+vAX*D7L9Z)^`bt@uWp<>$cRY-?vDZbwx2y_M<)K0Cc1=jjb@Y)
zQ@;bf3<0X5>Q_zrZihwbc<zx^V#c`tR8WmHlZr^l`=ui!Az!3_lK0PP>bO~uxm;f}
zx9Pu(la{BFo!}ljWs3MhFM%H{ElwOw-|z6LhPa=@{i9_3CT|wCeT_6~vK@EN7y42j
zV&1HNWoT%MMJP=)eIV_#a8$3OuTRs8GRY}E(e~g`@EOs|glo#fab)5#BcvIgK_#?e
z=wwuB3B}Mz>11dz*S8PIUrhWtIsJehq(W<Hh+S>FOhYdbE`ch7kDed5;~p-K(`FO1
z5k)^xOCFm0tOiwrz@39$V(&sSYeNP4w(t#EG(Dbsji&r+)dabv%fF*c{@>ax@k$22
zMmma>ned%v1A;0XsZLS*Ysqgp17FwI*8>joOMYYUVAX0OCs(L?gFaYRUS7^9pP~#D
zT}8!+GRhKqk)!_Yjb8IqflPv2^6QTuKRzYp#{Bc9RIMzUjE6M3Zz5l+rMVe=Lnjpz
z91=ny=vikvlq6etMv|AMQK{SIKrS&+P*9L1=oK0gVgsb8Q1vM#?Dxb30lzIMRTbss
zQL(XhEA4{b8os^{m3l1)hlfLhgFioUWK@EvxVfA)prD|Tilt;@Dr&>cVbcCqb`Q#=
z?Nakxl|e^mXQz49lKlSq&JH>Y3yYh^PT8M7{@V&3F^^nt+tdpizQ_il+%GNamVL9f
zT^yd=b0&0*9AC`|%)`i~5z%TqUTiV=&B<Hh@gciAZ@n%`hhAY}PP3(%SD2Lz8~5TR
z^Q*V_MavczRL=>>D3BnIZ1<8ALGe<B4X|VQ&*u`#X+_%T7^XXm14A7v@AyS&k`0u`
zN<Nl)WF-$2P%QK_y@<#VxY25KQh|n`3$}igu8_4URUXIbIfqH8ydG6lS*xh?>?stk
zjHADSagZ=!JtHEUW`up+_+f2Hf)*kH{v;0kiS`os6S63D9kP8hUm;79#wf{WJvF=k
z%`_fwN(F~CM22r7{YZ4VRebRIWwL#mTI9QoGeV0=O8)y!(oEe*#i74p;#1A8_CJMs
zNo<L*g?@29zIkwmEoq)X8@y>|x_TMiqCqULzHK>@h{0iF2~blT)45VHof_%8oy)q(
zvxwP#eDWcDR7#2$B#U{ym2DWW9~`1l{`-%5mBImr2N`qvLJ1kFRrWiVsBt^i*U*?%
zuh0guQdm%M@n>4@RpR#c_Hvt7qtnhPaj2=8+0op0jQ-P~KgI3r>>!=@w^x82%GF*0
z;sud9I5=2o&~dc3=CIZs^3G-+906PQ=?fwvVDIybip)Cwkr?+>pT|%NrU86u_qo+?
z^F)HEe)#YdJ*d9^ax_z5V`BqYnnqy8<KyFL#6o{GHK{;d9`0_2lHaf-4ubQhbjZbT
zCe*Y`ir@iRJl`Jq@G9});o+rHR;%;g<ePLJIn&zHjeZs=R?G%45kX>MxR&+vXxN0E
z%}3+o<K|;uKuiM-#Up0VX)Q<0k){xE<tE1Av0Vh_N~g`UUbc|*-RBf(`m^&(K%0Lu
z_?(_Se|`+83}CmWwsv1%AEl7@@0Aq;`e$3)+lp!2r4o^ZvsDITBO{3E42B~H&&5Eg
zwVtiq*;zRR2IqLWO`LWD?);WF$yn>}P0tLy%$%0a)iJ!Sxw)uW@&)<t#pO}g+ana!
zaBg0voPs*mJeQI})tcjR6)CB(t|x8BFQ8U$o5`GAzkSIWrC8Y7S~*_KWedzPf1}?}
zU$eK;(jr??R#s-Yy&q)c?l`FBPt7`H#2X3;Hq}aT9&#x6<Lda!5jP9xG~t~4uj`3c
zlN)BBy@R8(W1T^VM@ynAhuKg3&Y;P&Gm(2w#%%R0A-}naQM2ou2kxH5fexZ)P-QJW
zV{X;IuC6`kmn_U|ZZ0kkj@2uzHbgPci&}PgN6YJ98@x1mw0MNP8eAnF9goUy^I6aF
zWneHp8qp;`IDBWfPzc}4r|Z_upz!;*)!5$F{O<g`9oR=&|1Dnf9%a;!g<sngD+JId
zPq1*TNix!WKUkI$^En&ZF6)u^FD+%*l-o4iHH1;05ClDkEiE~oANBQ0wzM>VzPHK#
z_H6^)m3Bo;-Y)gyHeQ6BbbP~?0rZPKBs(Mf4t=u5ha&i%0o<0V=Zu|2=5-^nfR(%Z
z{&=?EeMN1VI{h=GWmflo2iO=K=iD(3F=xD{rUv2<94(*IcAfRC;;Y0gVLx9$0(#BP
zO>W1_tsdt9n_1b|>b2RTzQmGn0knCyx3_n7yn-0y1xaB(mStmYz0mBk|Mzgg@84eW
zvvBc3)sbvr16IP8mX;oMhV5%0kA4p~JHLMY0>Sx(p3kt;AD{zZqIVn|Di!L88Lfcb
zr}r<Lnwm&RNILG$<UBlXKxiKx9K=uvBxPrJ01F5{y^%zXmhd9*wM~->(gHJZ_wpY=
z48M!r2>>*t0<NFcU0rQ#4yV6q03#KhXQ8S2`{sN{OiWBGDLOnllgm6tlT}ecA>^1r
zrWRBLRjPgm$EL->L9B?T(X_X6wnl4I_|yplNvv9qyW_b4t{@P^3>V;l95zCAb2S0o
zX&Cq<rlkC^o_$@f-DW;UX>D!&(dKYOr;#}HX0JFqX9_V^T%wY1Hk_iOq@~`;60G)W
z+NvJ#!LPyLG;Yhh#QKjxfy<X)CmwvaemSuA6A-)pJJ_<e<e3i+`+KxJ&^6jnP<J=G
z@|Tl!s76<Fe^u`mR}4EoE6(L6cAr};mPBaR)mDG9CV{qwsYqczQscoyOOd9L*W=&f
z0DK4I@BWKto7s+kyD#g~MIJ_!GWb8J>&xJy>bg6U$3n!5;Z(vdir?UD|2`4+JEprG
zS-qJ2^nQgB;;+sYw4|HSarduf@K2g=Tg%_wNsg_9-tjMlvW4pl_4`ywNo&O08;59+
zXU|DujDH98^b0QPGPXW0*KES^h6auB{Wsj3bQuZ5<!>vkqLYj$3tdQ}O|<*ivKh0a
z5|lL5KjM)s;vxNdD9B&dr`+hn5pX>l4vL>V^ulcw=5#Q8%z99`|I0wZR#h@QI%0RU
z<3+orEAg>jjkc!xOP3Easz{WisyTb75}!A1$i|OegW;+Dr(U>};n7&flQk3(Ia#*0
zM!8)pRVx{p>9e#sHyFmDR01CFT1_z(@zWcQ%SuXWtH1F5UQpqtSj=m(dp`DPyEs^V
z@D)$$mglm?{zj=(?M%BhOlmD(%7Oq|eK9nqQE|_~#X}`VfP2(rKkl>2o8)tMLi8Ko
z#mOniAUJ#{C-6-~9vT`Nh`ux~b47P|-n%L)zq>foImGf<Ha45<leI{qH+>GRz|wvn
z6XH^8Rw-3Weyx`#;AZ>j(|ST~GKf_G9L^wwwJTgV`l6pac>;luk)?wuZ)$15Kt*N8
z`3}M#7#oE&?g2w~K((w|wZR*_JUoryf5q-o(6`XY&;;$t%}dqL(a<A$KM4y9$4NWy
zj8fEVSIqA3jAY8GeoaqLpRfqlSov<QbRLgcs+Q)lKQn1MG-dS`c()+L+?D4q6-|g4
zxw)qX2A;@Xh)YPw6siKh;vNqyP)JC~zzZzM`!HOJceaZq>feAHq97&33Te0bY(s#`
zK^h(MzYk)byo-wq&<1YOXv3cdSB9PJQ}cbKFHedkzO1tP(s)837TnG8lbrEISXflj
z^v{}fN6)u%Y1lx0U)0UO#4*=O+Hp@Sg4>#r%1lnG<|_a4Npp`T;Seva9w&<;@2A5o
zDJdBoZqJ94O_M%_Ktz;(T$^ZRZMm0Me!=>KCCudEe&rj`mZ{*PV6(h*OIo2=3>UM}
zCNl5u#^|-GAf%RdRn+&sZJ1G4SB!~~=w*0Y|0;BAN}FQroH$~BUXz(EQ4IZ}=8Ftf
zQetH9rzBG&lW9Zh7U$1o(D94{CI}>EL%{XWPg6a>$busF3<hBx$|bfkwgGO0&skZx
zN&a7Toi6J$I>_eMim=<-*?+kx4fhRiUh+_h5P++M@W#B9DGLwtY8-WVR+F;DOAt_O
zYLdn0M<OwP8zLcr7onFy!Sc=ecyncT?}9%wYsVvLBO`-6nm#ezji|r+V9`6ipcS@w
zczB476**<a*2At{F}gfMD1uLB&C;a1T;W6>V}wrkWaR<t<KjNNXQQXIwpP||{2Vq`
z+gT?va!NjS%6iM0jHJO<w50c8m#p6br$;(IDk|y#M3bl}Vi^;#80E@Lwco$9ym|#>
z%!r$GX=y21lCFoHl9F<5ZEf2Na&&a`9GGxHufIT)cSbX@dp7V*O-)Iow|~Xa0f+I!
z@3Fn3Ls*UP?CR?3;=)90rni@YpI@6XfjLnYr)Sj%u@+xYP*6Z1z4Sa`od3S7@5kHd
zPsFUwc}%j!@NjY3QZ*}MV=lX8Sj^57ayMtkz@nz*Su<|Z`?Pm@4WCJ(-krdzl$mnK
zPMOLycX$J(?gQ~5{+g`s3I|K3twN3L$s6nHxZ5ztARV)v{{BG9Ex1Wj)vR7}pL=Gq
z6Gx4XD*F7ph>47(!(6wtw0zTi)p-iTb5GjfOWM+kp~gh+w@izPjSP>*S^2lHJXw2&
zdzi<UwV@zbt@6{5{S4;EBCxZbXibaE6AxW{vWgTt^Y-Tk(wGD5XU|^_<m@f%n&uym
zIgK7+lqdc>7HLWU^|B5*va%3_v*S#Y;qbR9GA5kBq~Opohw2^F9(z;M7cEy*N&iXU
z^jL6fr)Z%<@WcO$)Tq>#8}esP#SEM(Q?sY-%v9&y^2plIjM?}RKRGFQn*b0*fs3?)
zutzygdUI_}T}^j=`$!Z&c-gQdQo#W=CK1NERR89Qh_WV<AvfvVOVtPkHY_7wCW$zv
zi2uZCgSwa+zZepi&F){Kw~4cEd&HO#$L!!kjWk0GEGqP`ZficAh`rU$9C+%v<<Bfz
zB&?Lh|J`YYrhb%~kbv=~Uuqd;RqM#~FQqc{<EuoF|FPuiNg<5-`4hy^l1ZkfoO6vU
zz6-fxVOrnK;^><UyO2}mx3{*?bVwt`X)!Ru?(V#Q=%~MG=QJJs3S9JX%Kx^21=!DH
zK!pN9$0h$=tV9)&2Mmaj+RWlVk@P1O*=nzr+PtpvBqC?ZwVsocx0;QlnbULdMEq38
z=>gX8wO%u-<x`O_zySl7ZOxsQP^@@!ef@iGZUTx{uRL5#RUlNOc>vr52xJh&Yimf!
zkILL9D!*%v^iJ3iv#q?$O-yu~93`q|?dI#4Sy|;76C|Xh4BEYKx<jxLP9}*>M;V$Z
zO%MD}M^;)|X5!ZVK1-amzCq=b0Pgii*ZrAGp!J6{73tEfzLMFzM-$?{%T!4lBx&^x
z>Ykp>&wrFCXj*)9QIIf=E^e`wvGjOoLw<wDld2Z6L7TLtf{I2Cf#tzT?98@<QPJ$l
zA9D(DPB6z%vZRzzP5H7+`TTQ$ttB7-^OPxcUQ>q)$NHfO^Sv_ER4Z%49V+2L*=ZS>
z%M|n6l7};sf+C&gGU30%nh6^$Y^tfLGN3G1XZBZi+eFZD*t_PZ{SK1x%}K63OVe{p
z(}gEpV)=2B_&8Y!8}5)VY1$(_lM$0=gWxO7^aXUJ8=t@bl>B|2wqU@<yBT%Qw$neC
zI7&PkMCLnr7<e)fk}6R}b6HFLr!dWbhkk-fi=M8L7%<h3-)g@Me8pnuM?#TFOw>qB
z`uH_TBPr?QR9QVMMk9~%51+_9%zl)lEhG$OXfHb}%PsDZqfI_7J5HoEkpkCn#e&<}
z@e5$2PtQ+nNywouCP@G43=FhkyN^$e71z~?=1&+i;Vxy)p7zv|>y9SFysx)rS$rQ{
zVr8wNYqT*NTDY&t++#4vFOan!wgTmV?fpWzxVVUq8nAYHxj!q$^-)(hBPnU-n?@DF
zaV91rK|=AUa5YXr%_W#t$!|*J!h0<tE>6$L*gf->kyk*V(R$Vv;0|nz$8s{*h&Umm
z(9%rA(|-m}Vj`W#uKCB0pFe+^n3)kmp`COJQIor^7+E_N6%}Jyf?k`y;%aMao1AvK
zDRuTikns3D{JY$*U}Ym>(<dh;-rd|Zkv#`KdUSMDNlw4Ep*Bz|kLl0uE++gb!?W;&
zgy%!G4h|04qp4iJckZYnu*Id>ay{%Gb>Qa_D|8kbY|`J^tkNk;OEWPsrSMwDgT!oX
zyqYYO+p;SV-^xTDJFl#)q?5#njfx6pjvZSjHt~q@IbDrcEVg?-Q>)`GfYZ}(D5R;a
zp5%BmnX(qtap%2V$TEB9o$h>0?zUxRRUzA3jWbk39CNhj$LnC2tpyh<V0!g<bRVtb
zHpyK$W5JZR?XhggZN;ta?;plsI{Sg^fy-*w&I?aZp$(~@zTbhrO`rAIslU0Vdf^PQ
z44wRJ>BmwP=tyg3%kjy?RVd>L%%DQmX1N`sXFNT1u2C$oFNQoV+3n5okzlxHRNk-Y
zDKb~rh8~P7vfqtTrXMfuZsVu4M+~|!HfsVIV|M=NQv2sgi>RDNr_WKvP}I2Wv=3=i
zY3b;+^Kcv4KkC0oOk8lKsBUPuuv~9?*fEHdlk;1u_xs%`<fkt;)}ismb7T7lM|fBa
zeRh+*gvpE_^0Qd=VlkDA37=AKsEngOkMdX9!fp5VvLe^>hNYl?m!FBqWZ)M?25uzL
zeRX6!VmheaysqxRYuGLeW?>M=EVmg{oAxgw`FPevhO-m@x|iv%EY^6JB6};_M=Zuw
zteCyj&Qsc~&5#)305#`J+VQ|`Cd_EkWIuQ0sGP``Qp)7N><YrLwY8;_ipk)2c{MEb
zikZ2K9kHuJ51ueRX7}u@+r!-r#NT$Qc?5*u+2#Oe>hS!$=he~Dv+$o26E*r{cy0QR
zfKmQjdP+(4dz^1i>*&1EYra6Nsh=#2lxN&uZo9p^IR|m7u*6DEL19$O%bkML(|Wb+
zrBSIH{@;Jn($bi?xcY6LmvxqKa&mI|XEK7J7SO<D4-XH-0@QYIkM#dA+eh^Rb1a*S
ziuwj8Rq3C#o&9mmR5WKN{^NpHT2@|H+fbP-WW-Kfr(IDI{WKykuwZPzD8d}ubEU)2
z@AknMdXF6PQ!<}}o7dv^s_$c?gSCso(;jx{NDgMVLxv`8pR$@Ad&Cohh+N5dZX(-t
zzL=c=QQIyQLv~_$UzUq2j}JO7Sv$P?xz#xqX+;(%?s~5SsbisJ!v=mAuN7(I{_72v
z%-?X|H3F6S1y+;3or&i5L?{hRl{HD4UOO|!EB6F@>>Tz+<Cjc)9&^Nw$N70@i~r;=
zSbx{r)9-GZSbUcBspuZf%g;-^bc?(;H33=66h3QPeh=ry5;KBTsr{<=M2SL4Kf>;J
z2obG>?`b9Z__#>^r!`F*VRSN7fz2=2_q5thVWH%ts{O9}E47Bf{QjQt@$N)^YHBJl
z&w*xb`mbO^wWQH~gXPabQKFY=)3>v<3>W&ICsC+6uys~!>e}_YrMo<6?R)No1r!TS
zLd6~*88VtJoSl?prvC%Z)QUmgPeD#DPCJp{6Aa3QyUm*KZ^g>x$cCqvU*cs8Cy5Rm
z=vV6<e?@*|rNvZ$Th*hZA2|g2f2WX8i6~gzEVjTJcPS!={G{*nheRuy*WzCaprpiz
z6GW?rO@$m%QJh`J`R^#0mv|A$#?!M(25mn>@|VJ|m$V+F4^VZ$jELtpEhtIe(+Z^~
zg+C$qc?a9Z!N3m=TH`uz<i5V%Um}7?-xmi=;)s>Lt==ImxrHXq`2;l6X~ldi{n&P-
z|CybSh#C{ivh+w*L@$?j@hxXnv2PPzL~LwW7apWD!Bn+c(58(j`$GWqouC(KRyOf)
zEKgOFbwL*c5m7Q?gXy^g4S&dqyOhB-c270VIkF2LQ{XZS)BMGL<zN{p1V70rr1)Ru
z8+M4lAcv6%d4Fx}-y*G;4c<^At?#Ro*l{2l&Mq%~1hQ1~b1>qhP1bdgkpDP{`NY4+
z$LY7v@)H%s@sKnLFiVNAbwuueLV$!?3JsuyjGY5Y*y8I%!WH4o665=d#u|u>(_@&i
zLlH}d9k`54`i6yjmui)`!D>KPK)@@;n7}_J4F<`b2=d=4#>fh5;>YQ6WF4x;5#!=k
zNT8RQaJI2wLvezx9MXien;P7J<fanxzUEg{RG9*`%RpLFt&`=HY`6^rDnSz3<bC>V
zsFo?>ls#}H9sT`Mc6aQ_xwo)Ow|6IZj4~iK9QM;X8mWt>&mr&eqH$S!Shat!^YPud
zWVALEZReA4ot>Sb_S`dSb-~I}?|rPT_k|y>=@|H$ii*%rU=ew%Do*Y{>uz7&VG55u
zh$urvR3I3!TJ88fwXYIi(FwMx7kV}!dEcCEfgX5Q#^-XrJ+cQcPX79}72d@_=|4Cq
zo2hukuNY&bsil>wOnAkwtc}=|F-;^0J+uKUgmJlmTFveQDa6po$jID0IW^Ve>PQdT
z^M#);v*S!@xMc_%fBXvu<iiwx%CC!SOk+*;{ORWArZ(NEwRF375-zjh^wvzol0=`|
zzn6b|zLk~zJz5fQ-c>GCWlk9I_V(5nC2mz2N0C8PMNkGC?N;6q<A9TWs`*h+fOzSL
zL?j^u5^4lwbh_4bC?WzYs0&<-!{K~A;^~*=B)y<uTXPX3EsR_?a~1WpZqcYs-#}Ay
zcVolpXpv7&Zm7DtdVPI;czBqQO*<vN=xDJiAvJYxef=2$fsv=Nm6er@45;D>;;-J4
zFqa5Yl95^82TD*PXQB2xXw7L2X_W8I*UMGuw;dcD4BNB}u=zKeVFpSwJd=}?V<J9b
z%3c!3b7>0yubO~nH8sG3H;?iuJ6swCl2f8a>rvjiD)S<)7_qqndH>}e9OJ>`^3Qa4
zx2S+X%dcP3p+;C(SZQyqLydm-gyFgHXI52J$riq1VR3SHZuPvha(DkBTL{Dfpd9N^
zXmBubbRWD}DN;P|#}8h2K|Vgd*RNlLb}K9_1nyb3kn`nB^S#MJP+|7xzMHG5P37}q
z4Q25<e448@#SHw}+uPLC<g!1bP^#8lOY`z&F#y>%{gp~RfqHG9({%|uyJO(q->P~t
zF*B#aJZjt81Qp-_9<NV&@XUu(RJ67E9XEdgEbZ^_e{@@F-Y+ffxH}ta_qlaF_)UP1
z4+%#M#UZwCG*efvq7)>2t$lHj7oU-l0n8T?3c3ln4Rce43~pvRx{bew3$lfd09CO<
z)=$=YunAf19UZ})%SlV8ytM}W41AMLv$LhWJ$tB;b_HQfHn?)c<8z4#Hl2pgi$6~1
zZhj$Wz03*T;0>e>!(~`%PUN#+?fmuY9cJKrgQp(Pm?CmZm>YwuzV)s1;i|hJaS@68
z`@ifbGth8B3j0#ZiSiI`loF1jZ;@EzcDxLDr*nmfO}ox~EDN*(bK+oUXXoAB9rK5x
z448*%sTyJzmDwtT6+k=n*0Vx)Cq2MB625qWST(v|)$#h(t7nnDOU*9lr>8fY2})<@
z=Wj_BiWM^nU+ZE*h=qM&2i}PB_}$%I@b6}(riqD(nL<9KJ?u`NKO8nBB_w(Qm}O*U
zT3cBOfdf?NG!B~7g0q9f3>VJ>PWbP^+y~k?-B$MrL-x-L4I{18l>`$g5qY52<Kp73
zc%P4yekh&+y$O0ly+S*hglqeJOc=0a%hkbLwGj%W(}H_@X9r<<PuF`X1Y8$8{2oJ}
zl1;+lM68<ZF7w<@G(G6aCE&tb|NiaxybQCMuS@)<e)zk63D}hn#fl&~Z6^x`4(7gx
zF);f6n=^l@nBo3-f3*PasO;mnoAVvNiwUXcFBRqaT!4d-<BcIAB&^h|Szql60y2q*
zjSVt?-0QgQrF@eHa=5r7aO@zQR)%-kEl#MLbZsY(Bu4_MnL<;sO6A`UFq(_zU?7c2
z;9(-O^ih3735!>Kv*okg?js;1L<#v4A75*~){TOJi&!XMH7iGtcrr$UgMQrvgg08!
zqMwC@1^lGV{q$3asEVp;9(=F;{;!Uo-(xnQ#=%4uqSv}iuV2SRMv@77)-^UZf&?PQ
z0baeVyqp{;I&fYsZpW0w#Jr##0#Gp0UW?H`0}6k9u?LSNdV~Aq37^{$`JDx-NJK=$
z;?fc#7Z5usOcux>JU^e)_IR#XLVWycA`ic(q1MdI%wOTho7m!Fb0ESVS+jf2Nl8gu
z=A-g*3JTKFzgsOofS>2e5tEZIwt2Zh{M&-WI@*2OT3bO@aNq>RE<i;==R0_M^2cm&
zD+uuO1E5Z(#$;jn_GF`9j{ccBQF6-eE>M*uQ{Wg~`1M3Y0u+n)7pefVgWh&_a%yqd
z2o=rEu_SGd$gR-U($vI9jf;!Rowk}S*N=W4tY77KvKqj?qEBN_4zBLT?U)nCSk~_C
zDRQV0acC}asF+Jav*qyYDQdak_P&e|CjJSppno&wX1?EkD{5us^t(?DFHdL59$!n!
zszB8|emHJLw6u7E91qYstYbEmz(>8yG}S5@MU76ErvEdMAJ)+!459wt)E%?!;Z*Gk
zbyh+mDAe7{3rJjzasR*D+vKFAh~7^X>ej}_K}IQ>td&FpG?>T{5ovzhL$#p&g3zBj
zIv_qzaB+`jtEfcq0j7~g7sX+D_Us_r#THq@-STJmwUR1|6;0<2*Z6QBa1a06Th39D
z-dz!X{TlaAiwylU9i4?RJgT&q0OW|1jhtI#l({0Q&z!GSOQDoNBV_y~Xyb55ID_%S
z<tdQRTAy`B7b<4*Gtgf&*3{%$&R>iOZNGnijO6pRMvds5Zvjp~%5OyED&=E1RXjgQ
z#>J9%a&M~Tg#xe0ERXM5>w{d!J}ys&6Y5EXQiV~0ohnMUwYGM;7DhEQH6@?QS!f9_
zIx)03wM+}8>T<}iq%n<oX=<PVLoz6~Oryq3m~jh=yXlK>Qd8=pT0WdL@UyYDZn2)N
z1eG15-h$xSGi1u_^Rbjiq<{b=$6I6L?t?a*p6l!DUt4E@R!~t<b(<UutE<`R>3^=Q
zP)PusiH#xVSO*81-gAaZgoK6BVV;4U<uL9?hWz5MlIRpBhoA@1@cxhh>S3hsZ#mw>
zhw>873^_)a7U%q{I(*n~XI~EuHui<90$HIipn_{%2|YQ>Ts$N=7)nHh0^xVwt+trR
z11AEyuaQ3?P5%sJXQrZtmX?;9+6B;0p}9BBS$e=u3VUC(gMj6ChM3huw^eJ$%XKt0
z-@kBh>hvw_3oVBmv&m#N1zWK$qbR@`DT8pu2Z8J<X2INdzXS#K^hOfBlurTL5J-)w
zSIj5}=l<#wYR99p4zJ5Gl5=}bl`{WioZE(*)aLW&Bv!4n-koeJVc*stKit=Uh7%AF
zpo&C+mH-4cU-!R!d=i+$G&nJF3e1ew5Bs&h6aqg#otCKNqdz63mv8U`nZb@j#%uo`
zD0`x8;SITeOr{JiSr0pTKL>f3&YV4IzDpJwdxF#p&SX@WuwXSghCp8~E4G9QRYj43
zJrszv8K6YZwszoUfT(1FGSuv{&yJ(h;p<~)XlP+!0i4I({k@SA&j;Axg{#x~G*IEG
zsj1*#R09KpCf$c#B7?fmbCZj^Dp0hSqhDym2;b;uWM|vy+pX>IlaY}Lcwe6Ywrpx?
z5yQSID158Xi9TYMkAG2Q*_@Zx-Pb2c8wYF!FoM9Q&(CYe(;E#kE2xA>NGPOnPgvD^
zwk;0~Jb|2?tchV`V;8Dga+3lR2Vm5J-0%7%H$=Dcvvlhh`hl}rP98TmRFSf8-?Tz&
z-0W99+6xMP4h~|;HWEUin~Uv->wo?nALA{(4>g*EPZB5DOyo(}*Z`$sb3Qs+Zqu=U
zY}d^_IY0MO4OHoj#Pv^0BXzRW{}3yjP}{g?kU!!6Fihel&>~eCtTpu{#l;@FE7G|#
z88lENQryKo3gC6Bo3`D_9KJsP`EkvzZ~EWmK66AG%!3oM3Sy3dfdQ~OxFs4)(L&X&
z?QMR3{`rLk>w0Z3FR!33<qsb=*4L3&bW~Jm2qV|9o{R<pyLWcxXl`z<q@+};rme00
zDtTzjk*|k+YisN8-@m9L>^M%he{Ir=#Kgo#s>G{ii;IiB+}(M3dDS#D7Ut$?FjZAl
zj4Umg6J;+w+q5fOot?$;Q5(|RJ<iRntjatdCWqiCW9QFG>&j}MasCv}Ma&tCLQRuh
z99|IaoStcd7gHP@=DswVkLXl}rkK`Zk12P4|A7RXxATvt%n>o>i!mks9WU}Kp|`ic
z169z1J1r_IDkUZ5vB}&KnB0qt3ytw(BoTms-(8oQ!#Db^>*r_1kNg<uu)p6^^cXK`
z{IOa$<c3(|GhuzuQ(;OqoM9DlPeINi*C^U$(EYD75o6FnT5n0Lhb3x<T^#r{zc@0|
zpF_ujhD?8sjvgG@t{$>ThXvZsV4qa&2;JA0(uWys{j*Rrnu%jJh(kAcZD}!o;05GK
zFS*utK1I%YS1Io`G0xGe{MA(J>xLl@J$e5`GyT-g71^>7EQC_NsX!^5GyLZ#veeJJ
zCu@mgU!*E#xxO8Vq$|y#vkBR?=jv<VM?yODOWxxiPm#Zyel4gSXGom!n^B1UP|cV)
z)Hp@P1BD<@4*7xc-RZAios#cypnJx|zolRFJDiI)xw*2gU1p_<)0UQ%@jIQ-Lvnmt
zTwO;;l{irYjer;UVW7Oa{b&9a_Y^GbswN?|J&d2xe~b*4)n#R+Z=v{V`}pmpf%r(v
zWm>?-4-gt;Wa-70ilx(5X+<_RHe@?)@8b((3v27^eYA<@+>*$$rY=JFD%k%Ep51B^
z<v|Wg#Q#DWe29VMCxsXL%v~9pv_*$wJb6runFlDRp=@w)=I@(O_m<2FbgyqfyRFZG
z7O1JK_nqGzOU1B0{9z#?B06y&eIA&{*VI(3s#;lGWM*o@EsuAi;z*7WnV7SU6bOm&
zD%XD^f)Cv?TAA%9=@x&+$aTt{`8HAZt>t6^Kq)j-RBrbT;A=()25z>~?MQd795?!+
z-&)U<Yu67}=DwRn{=<h48#6Y0G4*2(9Tk~}X8129DyI88pj}}p2V{Zv<o&0uYOl6<
zkJdx5Cu|n97k;<W84sv&%(4rD0+ZR|rZcd0i%SlH;84KaAKQHriWDoP@W>_F9=kBY
z#X_BT7jH<s@Vxc91`O1fr;Zk3KTyNhPM^7=LWpfcccg}&5oV(*!1wm{NTatcF+lm)
z+1`FPZ--XIKduzM(S}`8RyN;aZU-un-jZ&1L2$=cJo#5E;}Y*xaC(%<{nVZyHBzB^
z;-7f?r#@f~Ihv(^gvE%RZyp`_K0e%YF*7@c1n%&n+v+=!8(a<1J-_mNXYh#Dj@tP?
z{!;CRG9O_3H*2f;X`2>|Mhg|a5Aap(n3;W+Z)Fc=y%@qTJn@t|7$J}`hk^;F!~sB$
zyfNRuf6upUZfzw`qO&KL;)*J(jnA_Lvclvb5>FqI$E~pM%#SJ}A5W*eKlqjR4k#&3
z4`v{HtU#BmBXI7@rQtgsrD|9ZcG763hzN1otet2{I@Z910h3pW5qV5rUbp5a&vE|K
zP*;Bi#R4LnsaQN=ad3F3a7qhm&V<ER*}}c~94&g8cq3wWBz&Mx<o#XVn{Fm~q|tq1
zGBTx>mMG}-z<DF}pT5kOXIvo|HNkNd%XI!G^BG0#kruNH8Ot5ru$RF<7aQUZvHx%+
zH1vshdwo4`dQUpOKsw$?D=kkm#+bP8tMPr~$NonhT>e0i)kShB7o83ng@vZ-W{h`S
zTmk}<<%a=H2Je5FG&D4z#ysat)hzbPV&wZT)!eXMD>~1@$Y?D?N%->gFNi+yNfq>R
zwY1zzV$%Vj1(0Ry&!1+mt0O_LtEA*4Pj~lnoyO70!9R%C+WI}fMDTfI{O&Jj$IIc|
zf)3rm>J>Ul8N6|MB_OO1S2~25m@o-PM9!`Or^QkU$52Z<J72^z$i)M;kB@JEeDH!w
zNJW!w9UpfXb_IeA@Vz}m%r47>c{qxT{{#r*=;Tx^pL&-4cvsw|BjERN=eFWQL`ms;
zckKZBApH4DN|^fzF#m}C@~RDy0;vJrX<u(8(@V${PKIC;HP|c=LaKoeGaX85`tgHl
z(-AT5xx;IF`}a`z?j)$oP+DI8ZZ|(Ri%sR>oq}4NwAzOc-yJrTK&<zKK6P?&@rkDy
zUXLqbUV8BmNE?eRXC_ZG9^`M{1-*H%nIwfztS!QUv&IYUQI4U*6lF{Z#|%u8wnz(Q
zAoxOV*bdi`#6yoSu$cE=he_h`SGX#Rb^~i98AIIVM80|><Z~PNvh}4J{d|MVe(HDg
z4{*5oNXkT^)6PtVwu;i<<sg#XA|Jn!MD(jXg)yiE5(G9>R9r~%G_=WS=V<QxP7t1u
zX0yov=q<$bHelsM8D<ORl6d*~8|-F}#2wFaM1tzH4*_1zROrk$Dp6SovE$tS+pqd)
zbqNR`2?Dxy3Ap-7y%t~}6ap87?=Rq>G=tv33?zQ{`8PmF$@Z(|Ks0QSR?hrO;Jn<V
zPZi*$vsD@z8Ug|W#YII)iHV5q=$o3F01^8hw_W8NtKvZ=?jLTCZ5A4q07+k;ZXjMB
zvNe=^b-3U*_>~#RTY_xiMt|(%Ne>=~fXkj(;TS66hgji<lJfElKwzy+P8c}kKfG_w
zgsb%HtE;8u<aFw-rU4t9sP0v-^#E(o-QB$$*Mx;l3V~=;-o<76xpn#nyV@*-GkiLK
z4>wLTEut>aN~cEk_<SW&?T?)GoEQRw*ozIRg@zju2W*VzvcKtB|MRY{OGiyJh#K=o
z-20ZplRe(VVkn7XW5Z8LRur;3Q~xcp_~k0E^3DMrEEedj!(UfdwxA&6{Cr@Rf%mvI
zf#8aKX?|+H{5dc03k{`Reb-s5IBhDYsVp#x`uh6cixfbhiHXvmU0ehQ<dl?@EHv6t
z@i_(;Ffj>9sHo}cA{KH&ATM6LKou$1ZK|!Vw(pOj02~Dyd&$7i+uJL$^liD#%b?l$
z3B-Q2Gr;%$9~v4O5(KeXuG{hQn9%L;<m4G>xg6#);8?j8c6N4(iwe8?NP)l+3kwMe
zE%)}C_C~y59opXBwq0)3s+u(>mQ+z|aXkc<Ssd>C{(a|H<_{*EselZ{#l@3f>jB3o
zL96od<3|~pCq3-&A_Y3kPkk4AWHVJAF8k{G`dRXfWc<!0;;#;u+Yni3k)|l8z{bSH
zYrhH+gBKPS^4KoAyX|(N)@UMDm8^Dl0Vzq{?aH8kuZJgHN0VZ;izo-5Q&_mqVX-JD
z8eH?uv}ET;bwGo0f@)bcUY-nhNL={mF<EiX$US!L&p8Kmt!^INJz!A5JVS~iBO?`R
z=(2X6#QmC^Ym%F-)N6Lb!0F+Pk}dSK^4e);(7$JbKVM0ZXAJ6If=V#6u>tG98D&ho
zdNU^U2&1FhxUVs0V`E#Jb|N=7Ha4b=ea*^RURfDxWSwLRtYJ%w0IWmi7H-I%GN}Ww
zL^>W7^7H4<I}p<E-n|2HyV78z<LKyUX2z&yNE9xP8xxbGh!bO~6(Wjw=;kIw9O~fW
z5b*d-?Ue$H?(dl?L-x+z|FkOzBYRJdHXZpy@JXX3t7aGG=eu`M@>9wCEnWBvRrj{H
z(IE(}G{X6liM*JNXT9Y4`^4zYeBtFlmSZ3q^yG7prc%pP-GRRl>fLPXA)m9-2%VhW
zQ$a&B?RBMGjPI7(SC7|=Z#r7Nt||w<+}_+&tW*a~?T;|rJlv>pGcb!-V|S22AW^^U
z=4wrkm)q6|2!=Gu+1t<t3p!&%)3M0jeFl2C*y2_t&lnjM1#>+h?ysen(Qos7F)0bq
zODS9E9>5I*0$6)%?Fbj~3alOwzR1YP+au}8iHY^5Lxccue#ZsvcrYDU#Rs{#x>9m{
z5)UG>^Sv*6{6x&i#8lGU%r7X|1{4`6eUPA;DW{f)hlh$vTy{2<d`rAEeLz5fRXsqi
znejc3;s{@ltl9m`(b3V<(^H>+7rx;Qd&sD*y2^#iXWc*Xx5Kl>87hXfJ<0Zvdf1^`
z*^!jP!wX~S@233}s{HCT`f5Mh*s$sH#nWr)=wKUYe4EzJ#O<v%8%Y~U=c$sgXYY5A
zk&yuiPA{Wcp`JeM;Nns*PK(&~2sBR^9@WFpn+|$<dhf^kD{yiLH#d*~grAEzfH_<1
z35%r^B$b#Da62m3YaxW-laOd>Ym?&R8yXoAym;}}X?wV;;~!QQVqm~i5vK=0h_DTl
zGV~+3l1Cy>^pi3msu!L<&d$!CKCK6bKhMw48_g8BTK*LWsHmo~@#^G+nAhI$v%I{%
zZ@YdKXa)`r4#Z2Az}0}0%BxJRb_M0<=dXk?53)yf8SehB*~k$=X=`moO=nnr$`w4o
zwYp!M;ts*g;@P*2NjsKrHC=>ka1)144{`Q-ULD=fvYKkWl#)_<Q`O&)&o_F}^PP2!
zy*1VOTT>e2n8T~Y!RZl&Pf0~LF#O0~#53NBJj5Kfif9EB6O#l+1$@-g%gd+O*xwr)
zV`CyjmAQF&-MfRIsH>}sh=>5?iL;r1?_wKBtsNSSijJ<WrRB1>s8y==&Te^eZjO(U
z5xuASU0mD;MkU+nvc#5_mWm3*ds(Ng>VtxMqW0iDJv~OK%$%H@G&EiR`_R04RVEcn
z$^L!{F}tNgd*B6DsTwH(!9=UaIXZSaAlHRD%Z>g0$h?x+Sf%uLHspxmJ(Zy(AlX3x
zl!36aCCbLrgOdnYu8ZUJfL}U0*NNty{5>V%u|@3c4igjv0U3r%0SaQhc12Z{orOh7
zVc}K_yYQ1hOdOoug~qXSD7quL+vBoei0ElBEtT243x1#+vVL~}`_+qUep`RKLGHdk
zNParhgyB|iNh{Q?DL+|3?-7=rMq^{R^uz1XQCiGE|C^EOrb_0vkBBF#l5K3ep3SG@
z?KQC-s&+%9tr7%=fz-A;+l0d27Wyv1*!klA5TxVU6+?a7@Tq#7fcJbcTfCa@F~pSY
zSOovWMD|%jtZ)LSSdi(SlKq+SO1|U7CAEBUBeiNf=GP-k@IP^-BSFjy>i7QsZfP$J
zk$xI9Rk%bK=Xka<Uzp^fez00!sC&!yEPR;Dhm1h5(^f(0aD0lllO1PX*{T|Xg#1uU
zf?NT=K##r3;(R=R^R&G`ZKBoYLixB?QUuS`)D)O33L)=nIJAijg>X1~rO<lT^>F@4
zf~>!P<CE>QSiqrvX_{SiwZ21VT90{Qk}X#`(^kL<B3>6tEeM4|bC|4N1w1r<$;eo&
z)8Y!C)Q3Z^&trw@=;%xdIoB*P-Ft9@!y%MUeh9T2=#5#rv*=+!AfX#d=yoTPXHUDz
zf1*FSjikMeiHSjM4&O0c>5{gFtj}j<ZLLwMJq@gkND#WH1S=BqGP@XrEA=V7qsRv{
z;XMkDSevQk|F!kq@mRh8|A%Dc4smB^lp=&snIYXpq>Q&cx|6q&k;u#l5wfzk2+3aA
zk&!pD_g)Fvd-HvrK9ApjzvG{CKknN(*Lhvn>p9N3&h=72zV_eibkgY#Xd64)9=4M8
z#>{u6wosnzxFPNek$e__m`g*&=+cf?uTDC;ZvE-a&(D|r`!)axGEijN{WDsKeQD)z
zsRWQsvK4t4B``VHnF6A08PalVp?_y(oRyVT%J2s!{K07iE*6fctgJj*{z}|-j_P%!
zQhKb|D>HM&pBnyjU{B;IdwY9nIF&Gzl!;Pqx794DS08EcfrsA(<f=ZfoB^E{a4%(5
zk*E^y?V$Z3GlPx7Qu2<_enfBmqzDD$&_0f-_ZAVEV_%jQdUxH=s@i3Dl^x6G=kFgY
zg7+va+(0WzFAn4fFx?Up7rmxk^ezo8wtzmJf<^(0XR7B01_W5F{<@d4wm4V_X`~=0
zx4O2*06ZTpWPIgejO|pt@2_9akeULcmamqhphZ8px*W8{i3(l5d>UCDG)_!SPtVn^
z8p@Opotk<|?;j^<<foD`0zV%tG`?ju#;cgEL5Rg&ruJ1z2VrzF)!+}_?c-25LSQvO
zB$=^fqVE?Z!N+#ehX`{Bcf6z4`IsIN6}1b%7dN6CVI(9dSZ=rUXKrq8d6|Wonh+VN
zu;=&2GcYiaB0w)Z{QNtco4QqIy+5@IAz+am)ozN47-Ry@qot+QalKw33k*k|{8%Ha
z+eo4Dqj)9zwXW3D<g}VPIx8b(8-T}{y2X()oApofe{X7A%llBSfVJV{TmCQP5?T>m
z6Ws>(w-(4e9ClYHQxzhAyk~J)=)1<;2&20(fQgeRUO$^DB*eP#%ga_cvBi@4TjPrp
z24up$2N!B}EjBD-w_dy&GnprFWiYs=|C&cgNQ}E#qHF*=-)&Y*?fdIT027z@S=QSl
zclbz<`i2HPz1{Dh(Js#0H6?25YQJV?WSnZOEA=Yu1f$>2I#N<nB1oM;!t(NCJW~!K
z*hQ}9)EwF9$Vd$fi|l(TlOk=y!^6UY0+`I4oZlijrJuZ#=WA+e^78WRA82fy<vqvc
z_tM^mNznG)oeV0LckVxaPk+1AGcY$tP?r}sT;jI7);LbdYS~x0x3kdqo!@g>ge%sM
z?OlBQ1#i4R9skYh&=vI@3<gt_pTGCAGx?uPbppg`XTG~d(Tu7tub@EialaCR)Z}G3
z7INlm@`gVsEGXFDoUgMUfstKTTl?!}nMy{b&8(89W)!fVi7;=An5gKa2+M^Fl4d<z
z_^*{Op8_92`uY0G;x{w^_743`u$#!~s;hnlkGUQbiH5|zKCCATfA9*93*FvWUvEB;
z$1W-gob&JcuO@V532`g^*mv)ShKAT>z2m@e?j%UYx*h{NeYF}N>+iRRk^Sg{L|DJ~
zq<Ko`XO#@L>z{kgveo^kcfro|yPQ;IW<IyG`>LJIB4*3wjgJ?5rCs_04?qZ_Ur8xY
zJ+ru^g!P754>(q10s6(IMeG?|<F13vIUWN3TZpZg9?0%sc27XJw<H&(rBgHuPO6gZ
zWyz~Fc;;F+D&;uNP*U!!Zx)plin~qTDg3vUn1UG{_5%Y0Nl8i2?)UHC!?1^r1L<W@
z{(}A5wTD+ift{fV=(>R5y&j}?^*5$Nz%O1*mSLsB1rH2prm8e;R902FI5>y|PUq<b
z0Z%UUWnWgAU#UK66Zn~K^ZRaNJ%Zf1bEmnbMMy}9#)kr3GZ22Gr>pza(C|7&+<AL3
zzOwSl*cb>k50N>kbdn4;v44Ngfv7rK`tFfbf)M0ha#DS9;%e$xw)a$nYLj+Vidd#Y
z$K73n(nG}lx8i<lEcKef*|E1_Oekkjbs%5|fSG`1BuW47yaBd^otl%Ik|3LM4XTfi
ztDN~=yy2?iMQwiH&>I7!g5>0Ue;z%;=4zTU7<bd|G>_Ul8+7<o!lN+eFHQr+&-=>?
zjSaeIP@@8=SF7phlEn4r_~<~IONx$7I?0Fg4VzrmlwiUv`Z!%*|5&%=P4YzXWx<>4
zH|?wlAO=!<&$a<5H{%T8x(LS*Mujqd87i=AJnC6oe0&KKjs-zM?Pz@;t8slD9r2gH
z{sVOkba7ei%D?T)qY~}y(URgvKLWs<y_)Nov}(A<<u_DjlO7q_zcgHut5>nzd7sty
zZZg<oXD276I1%NKj}hcUXejVv)5amlYsG&mz^tJQ#yorW>H8Cb-od4Te8ZFDBcPA&
z^hb0e)90xLaH@bz#^Y_v-RVIcHuCPscjw&}v0#p}XHC?_55l9P%S<{iCd^h<Re_-)
zJawunR`?^=pKiFcm){8$Qr96mpl}C^pGW5AuD}O$)d-iD-gtm@u~&b3Knt4*$J}<=
z&(h4VZS8#po=e>A;4Bgx7AEYnZ_Cfm|L9TsxjG+%Z{Sn&08`6sX1|(tdry~c%(k~Y
z6GUp@OhwkyKOpw3;&y07(%L!4a6_cwnc!fR^N!o@WaG*4PBoC8N8d+;z+(rYBFf0g
zf%vZXWT*m?qV;C}H+>mW07Ea3WMpE3!=3iVgL-Ecc!GE&gFw|Peep3ndkM7p$>BzO
zO^tMS#sdX~jrH{;MxHtW=z@Q^!-+jV>XcZ5ol$uBaH%JwyW^uQI<rAp%W<zc{Nz2;
z&UBE}z56(qwFWxG{pZi0EB)EzLGK2jBZApw(;mhWBO*4xL2f_M+D=b&_4D;5J9B1z
zV`CUd4O;q^VAG79)?YMG+-}hU2Gj`ux4f_CnpaMfI+V=6!PDQr-`JO}BYTRS+E+8;
z2AKnb{JmZ2X>kR2F~rBmCp-HZB7HIBMNo?@Q1H=e9p!^mY9y)C1kwve-Q~!Z*jrW<
zqgYN(&Vf#C-G1hx%B(CfW~)mdKYqM=^(wgb%a<>+v$L<_<Zfbd;o;$<m5w$L?wOgH
zkdTnHV-G@oc9R%&F6`ta{;98~10&d}g-wLa-AHTI;XplbT2aO=VfG=(i$@xm_ka(6
zeu6g=3iI;V<hwR$<wUpIE`>ZGU-*y)Is#e@ZS?e%1=rN{gaCQLOy}S5zsf3UrrH-n
zNJm!92yRrlxVX^J_<S`VRB>QKlNGMmvlD!1O98Rxn_0(vP4nl^V?TVDnw@RjsMOE(
z>5EG<Rpo!``5mz+=``_@WKVh!yVoTDL6|Y%adYgnNR>V%!@FcI_#T-XuRa0%Ll<N2
z-h^I9ClG|lO-)Uy=jhJQ&PK+^yMV$03ZNmn{<Qubz(>Q6AN#wzSX$bzCY^WYXm-93
zyLXy|walC%p_uDR&Ah`-m*9)y5Q4a?aiiX*pnwnoH2_^hLnK30f1lN*$b3+coZKIX
zqrSc#$R9yQMn@kiw5Vrmmz9<xh=-?Vtgva<MALQ5^TC4D!a^ZLnmzJ94kvTGy0ulD
zpHF}&MhoInIu#RdU%&-7g>q7|-eyJw>=p+A)InLH>s&X7UESW^M%;s>j-&8VfNTH}
zySommoANbM7v74n(9+%n+34ox2FjSKLvB@yZO($_DK(okz%AQE@3fm*ht32s3XZ#U
z=DDk+fAQ2^nv(GEPSRhqK($KSQ3pb-`e0c+RPLUI#ZqYFoNal()7ibfy>z8`YVWrY
z3L;@zr`^5T#Ojk{XJcby!bS**7=RNf9WO604-Y~IME(PqUEiP}FwF-*;s)JDx<G~v
ze&;=g+L?&aclXb<%b=*vSmR5>33w6~6*c$gkC<^=93(^fr%$D2We*`3>P1JZZYOB3
z9oGAvyL3-6L1J%9i$;@&bK+rgQIYLX&wLZ-htnUZ*pk+gl*1b0C7sdgOez^Yqoe4I
zn7q6fO&>15EPLJaSs9FSTU#3i26K3{Gd_OO?#3J54B!J?a$8ii46UG*z|F(spJqxV
z14KecLqo&J7!wwzrma1cYapdLM2yHODJcPXtgX$1;QJYqos%<GXiOP64H!l3OT=<d
zxo3H_qNTZ+nwq+@veGMmeczo;&eU-}XrbSD<mX&}ZX%=)2y{}aIRXR$?0QdJSLZ_s
zwlW|fpwpyY0E0Yv{=7v%5ykPeha1adTN@jvkO`6HiHR4}KLUv7CxP(6#`*;WWM^j#
zesggKNz`eg_~=pftA#$eZ~}C>@u31E1vRyv@25!G5~Zrmdb#73ZaHn5eBek)Nmk<E
ztotn`(T*;UL&+jR<$HIwJ<*`TE;}|hRzO#uRRBxldl!=CXKU-yXoY<ci=>wm9dx-9
zqE}&S3K9<*fEM)7*8ZZ#ZNE5h-KaUturV+^B4S-4S0zK!`%N;VNMN1O?M7?HfFDJV
z+^0)*`DPvU)4N-vg&Kbhl^edU)K3Su(hM}<_P74YKcpV7H(GCjn{ZyK+OZrdJqNA`
za`W);Fe@u-p+8qgTidUG3Y?a#5BjbY<aT~Z2}Du~#@M@am%Jv|%h|&pfc&~?G4vXQ
zi7(9+?rY(-Lg&~f;?qcoaOa5LWa2nE(}7TddJooTT0oM?$jCrD-Gk)SgQi7NRWiEg
z)0E=1RaHT~)(K>57i;G|A$Zu`+1Uvk(K~OeuC5+mVXMp?4m(6L!5ms@nt&@}c8jEl
z$xu;7Ny!dyH^8>6tn9UG*9efDoSeLLQ%g%r$RP~_7aSE)tAO-CmaFH4C`H{1ws%h<
z={imskn9>CY%lTamOkNVs;#ZX*LmMC?Yet0WMFVGJS>cen0Q^n;GchHCMQ2W=K9^9
z*j~W<{`7ZmO9bKiYRE@P5hO!(mp3GsgREFj8QZ(CMep4-^U}tJ<ukbgmDk(14Ov=+
z*fXam95pmF@L81vb6dpD&J|--POs*N8j8p`!1}wL4!B&|Vjb5M#uRW5(|C=S_uIj8
z#p>!R@ESGIIXb!$<8~IL1`MN?zWx}xKDB#ENl9X2Vs373Vj^qN#P3ly#aS=@m&~&(
zD^`XURW1j1h_s4|%BxqeY;A276@P-$RYhNbZ`xZb8GrIy<@IX`Z#-n%*3ORAP!_|*
z`tJrpnh~j7Uu1nsA4$b`r(3bUVS*H?^tr#_LQYQpx$vQK4_XZ&CdLmR<>S-X9L_UI
z0Qxru+;L;zg|ozU$#2OoFf%hsglqD8TM|idnr{-9T%I_|(W=-6>c0JA0>LSd^XmMb
zpa0*S((6wqY9iR#6IfWD=0~9hDQKlX=V)=G9SrDu{D8-4^72;;S1^(NB_etG`3$#T
zYl7UG(71xeYh3UawTzWtvH-@DOu?*JOiF6Jxw*N!?o@-ohT%&an+q2%JiPklkq4eW
zVfvj|8oE-3a^SQ{46W~7fp?#J%~~EPSS&3*@gYNyhut8}&y?w!nl=f%Z@ObzJOt95
z2Q~!-Oyk?h^_ZHC$~{B3n?y2J1cdsMjMST!yjR*Q8)8*5FlWzNtkMry?rV(&N1wYD
zPlHp=ACzpFd0CdbGX2O~U?w|;>1vrS#V7?q?yw6s4sf55$t$=V`HS*%GVXtOHvcEF
ziJTndKdXHiiDTZss<UQA-_X#ovph;eoci~>-5qoyZ~N^7#oYeLhzLH-ya|9uFy`jN
zU(cSACHo(XoCw;Aje1U@Z+|NNs*XLYrK+l`uD(s-N)9r^pO&w!`6u<2PY6K(NdQ-*
zl%%9yZoiM0m-Kv9ZS5Tr5}$*el?B^!fc`>W=cS<=&d$#08WQf`pOm_txEdLy!kCj^
z^GKUVUr^Lv`Sa(@jGn)r-||SAp_LUY7Tc3Fe_vURgZetg(85B}?3bJ~2?;7EN-W2+
zGP2(`3}|PoXRGssH!m)lm+3CAteh0-aPjbj%5kg?X&0H`@%WI4h%3~-goj7?(Hl5r
z7zaHITL2M#uX@>?s%}e4j@H%^)(NP(rfX*d1wf*cV=%85?z7hkXyod(R)r21qD8Wt
zxWYZC6H&F$qveCnLmVj!H5v>K4hC}|m)f;6=FE@Y@BZ@V-n}15GM=Q&QqIe|I9$V5
zi(ydU?Fo_x<0r>-eHGXA%7ul6)w0#wqpn{P5&{^y&cX3)vi2<?v%Ax%tE=mHj;2gh
zxO$JLCNCd1cZ>kO7EtCqh!{}RvOW}(BDdMt@xMMR!#`+#dtH{8Xkcl%3=oA@$Oe%@
z++O&s>BH32Q;0oSbmG&e!HVF4t#LRU`R{gCffq>+Qez+t;XE1~PxF7)PE{}T-B{bs
z$;gNXZwx#rCnslSW_H&>1W8IxehRi4gk^DYvBB##92{nRS($W!h29&K{0i{D4~Bu7
znVDBniGc7}PuOpwD}d=1bashZ@0W46lOsUnykQ%8d3j~!&g2Gv5CLUQTV`)n$^cC0
z=pywh><AEukA~~cC`h{SGYvqqz;qh9w{7P-tg4UDifIf&|00Op@`yZDeP_!3NIpHk
z=zk1unIzDAXJlu;O`Tx6X^xib0`{UI#<(wrCnlmbSS_lL(KTDoGTr>#`-iw)RZA;6
zGV<2HKcfs>_hxF|oMK>LkUHKq9RKE0Vm^8X8TjUM5OV4MP0JC7-BmncBiKOI2qOqn
zTy%7FSlA{YTzP4!05b`qS!@=ro+;^ixa&nmL(8kV8u%VZBvb!X*=~DjrbWYi{HtDW
zH~EIDySx3UbE(V0Hn3`6u0ar+8~~@jJ_{nv9Ue%3y|%x<Bq^z;p~0x@le|cvvx7rV
zPtRX@nX6m24s8M1W&OgI2#EvR>0Dx&m(BEk*w!!T#N_u+`OquZw2S1fgr3J@dG*R+
zG#SzpkA^+Ey;qO5zC%T%Lh6mbAZEL}SlHfUwgm=~0Fh{~C@sZY5L3%gqkykw+u|7m
z(z3G5+u}q8DAIb(XsD_0y{CUO?Ev4@)z)H&JqrsrRwwH~Y=Mu2CJ`c~w(}~ednz&^
zK;)Qjny*bYz{r3uogc{vMU^ibH#avYCkgUmc|_D3kCLvgii)!G-*<8v#04+nE-G7C
zSZHf&@34#-(F)@I&QNt|&P|4VxhW%YrNRr3;0W4d^?y0)Uy1C#m!h4rH%lj@92Oq_
zPl@FysmC0M7HMfjK($stV|r4A;vPF1e4r24)$b&&3wDGefizNl8-pbVQX02P+NDk^
zfr`ZKmy1eDSOuSv;*=jFBW-QVO+4_wGQpr2NKT)2Ioj$sH8p+SpEKjAe=$V*?F+<R
zDgBasS5wox)X5%Y&uWtCP=7z&%lGn{9f$i5eWJ4}<v2XLK-m1Zpf7CNTEIIDOzh=F
zl&vmqwEk?ZyY8tK!~1(Fn!L+HsVx)ip4kSvWeNbrxgji{ROS=i4!^6Yso4s<_npD<
zv^4YSmiLqy-jBXRph=6k)6~B?I)H#5y>`JzCb)S72UB@|2b~G<lf;m1%-3pEZq2Nb
zp@yoo(iiND;%CqAgHAywu!lb|GBwTUG~s<#5HmECmzM{c3a&3TJst2~oR2RDFDC47
zg&@s5-1h<)jQ~oWx6S3$0KuUP`}+F8O;S)$fC4)6HraV+`O%pF9$9OvB*G>vyxDKy
zmYtnl3{JpyE;uqW5=@}2?dC^WpWA!8hT+=rad9JATHt#W&CQ!LR4s;zLLQ|4o^|y9
zjygQ6zAP<h!t~S-xe%npz5A409!NyIz$>$6Uz&)UH{GWvzD@3*Wdg}Ob~14)!RTWH
zFE6+Dj@ya7$%$)9=Po7xMG=wRLSU(1p^wm|p^0RE1YQ_Uxlak+(ANh~U!`xQt@p=P
zELCN&SRoRAXAbB4dh;e+#sx{I&G!sKU0q!erh!lLH1_s8RvKBT!wF)QvNSSfz+$m9
zG~E;T>q2Gs-&C(kNZI|QFVoFY&uk1}BC(1{{_ME%n*f0W(DLb;7#eOAHSo)S=opx{
z6*K8Gjq#S`_z}nu8WV$-xnt59UN0zMb=@UsTm$oAHIT>7$Jf^19+b?ryDeI1Jl@u3
z*`I^HWTMMwP;7So{nM)KC-mOarGPx(0*Cwh)T1K6fe{Py&c%y3yts3xHtC}*D=w7u
zX=7hDr>aU{mc9jh=yl;%>p1ny3&OT@hy342$;diQgijuKFd@MS39g*C`oDKxXJe}w
z8@tWP+1S+C+130Yr4vg>ck6i{MkY8p`63plr>D2&bo7>-4toao<jKTVrbg_+fp|r!
ziEs=#9bbp=Xpw0*7;PzsRkll)PBpG|babSfx@Y$OSzmt%+#Qn!(hZJbB&Y?ctc?Gd
zl46+Imrdp&;;=g5cb*3#^|{w%L{dWgtN9*~F)uF%Y3<-(w9%k=Sy_U<zDh<BI_2(b
zUt=Q)@>o^X22?@3`tX-m&nYP>cXQBrDwVG?eIp}*ij~qgHaETK?B=^Jf8dZD8I{%k
zdUyPf>s>4kY)N@Vh18=_U$(hx(lwd)Wj)5ucGtBn4WlcInzqo=NQPl)mEt7!GI9Qd
zo}LUT=YF(S@9#fnk@@YmhI4e>lS=ow=MRMHa<Eha86~{sL$$h6&WPTYTqU0SIC;bL
z+1<NiqZMvPtp$86ECSi2Y^0b3x%w%0clX1?*M}A>p)}0Q5{5r88-eHkI_$m_e2b-#
z5l*?sz|DraMu54o)&Ao-j4BtFL;l;Azc4>Pe-u9tD$G_W7`ItiA|h%7TZ7#32;!Ig
z)4ALl10-dN$A6bhIK1>%zKv-+iP#^%Cb!98#kRIK*IJKscAi_6KoA+KOY;AYR5D=c
z2jqJ4PDBB&wX=Vp{z`*B^GolngCVuQy+r;KGt(5x3A$BMLUONs_rrtK^7Tem$?{j8
zTCr9H6c;4W<%p_pm~*0M%l*KDeYv+nLLtD*#B|{-&jb=E#l<^fKOr5IqlZ(u+HQ>?
zcR0|@oSmNT2Gnb`yLud{{8%$8BxH@RC+WsbATaZTSI#)cx2s%4q$U!dt8Z8cFv`}}
zx{em$c*AdhiTPKHDRuqi+sRntaBQxQmXNUIvktcBOtBhsV!@x3b8k@*v4=K2#v0Mz
zOX++^dgos}K`3@h?1H?qVDzG?{N2ajJdCt7#YhkVdW=MS>`Ka<t(Z3+e9##qU_JEC
z85PlY>yg(sxb*IP-r?X<Val45KG#F0>L+vd#}Cb}QtsYwoZH&JAZ~ZKHp}WsO!3ZQ
zSp7fw^K41iohXGLR+N>AmX#57UyPYGdRb;5jXa=AdqLA^ecT#5tf^D|rPvMtuF7dE
zFer#s+-?zwotuZpSTS*|_<4VZYP!0b8iE9}O5J|;Uoa@f!ve>RZl(33o$*Hr5{?ai
z=kxRP!Q7NPtWAN}9WH)uKT$*APy-5aY8u^8y;RVp;?9Ptd%ZJi55HDTQ&f@{y&NL<
zn1}%3xO{nQt}_KJd8S78lqdy^1NfV8tT|P)F)^rv4KO~L66N0wxAENLe^l|M-0(5>
zoG&glHT7i2O$wdWaQ=Ka|Nfh&*ZuJS6|#uGK?q5Rww+eu*;tM$uS>LZ-gd+s($o==
zb4@r_ktEELsh+C~Jw;JRg^@+19a)UE0*$N#Y5W`Vh<!=iaa5Q(4t{;s7c0x7u15!;
zWeq_{6yLbf#>Y4AvZJ>gFAj_%7T@;$I{~uVt6^~Y%9X$i;_B($l1mamIy%7Um5v)}
ziEe=l9g|~62du48)`FsrO<k!+`&$(+CTo8+p*O_`lX3nadjk%hjC_=pm-qPqY*J|2
z-A+L8CgpxWmx=Jjd=YV;=i7^e5R-zE5~dGP^f266&aKS}CD`Z<J494lxn4e&NZj4M
z{xl>i%@m8f8Ypf(^($K^x{liCtJ@v6h0fpx>w#PHcd0Ih$SG32EaSNJaCR~^&pw3E
z-NT#vXC`Y`e~y~Gk;!n*&D^yy@)h^@nKic%VXHmwgl*3Xwk7Id9S@2}R%cYgNV;;7
zx0l~#ivJ!tSJRR7iZ>6-p-9xz%8SX2jM|`=d`Fu6xpa4NuyEq)Z30Tsdd$dl$Gq(<
zzb=(zEc>5p+~<CQh6OS>OHQuv@F9-smy$k9qjg9~2uKuq@0nk}f;kvyX|IGo$knSL
z_LMuDFwoa$*Bo}0kB{%(2WCkp+b2(w<T%!Mc5-vFQGVCfX2cFvxSbq>+~qg;_8P)e
zv9k>F5B${Z>?|dt#O`sGvvGSumHmo7=<52X`AX?4<JE3XPUT}yOdPI_1YiBNR}G`e
zFm5k$CTez#QeRwWm48u`{T(oSFLzH*s3%8;%`88?yvlkh5x<0FqfP3}j9CD2g8&wH
z9UCsUy1Bp@c`+j;l-|$ljnmpy?A5Enx+kia!;^*o^}*-PvL|u<*G^oL^Txv`N%8bp
z%@tZd4`<PdALrRhh$?Y)27G=V6(ur1Sfwq=9QIN)l+uwH;v4s#%o2IE-XuT}>@}C&
z$D5@Zt5Khc7yV?rH@n}Hu6uoabETt4h(K1ED|efa)^C=~<1u%*S#eC7>F2N4LYo9I
z-DbtXK~zM_+~JQ`DOfrte2oMdWT^5qg2Kbkn+pFqOB^D{5!z(-{CTQMh9<9ihMGis
z-T0*c#Sqfpg%46y;@E`EZoDRc-MLwIRw~px=hO1{)ppbT#QiXXk+yG)XZDQ0)hXmL
z`Xz4(lW0ZUU<^2m;UHo|zLR;(ihK+7aSWtWc<eo?>1`!a*?7uBnnNXQ+Fif#+t>Rw
zr|w|tsil?Og)7Ob17_dI!KWH)>0FmFLkAX3E`-p%6QL(26_+IZvnUWa{kw1L`u}^F
m#^Q*rz4ZTou+}nlLV`s1{&B)Ssx?GllgBCD&AIc$<NpBdBn9#S
new file mode 100644
index 0000000000000000000000000000000000000000..fcedda8998393a625fe27f12dcd40b9a53d7f728
GIT binary patch
literal 84358
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
new file mode 100644
index 0000000000000000000000000000000000000000..f0fa10c7da24d0772d8d841e57a28c3934b342f7
GIT binary patch
literal 73275
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
new file mode 100644
index 0000000000000000000000000000000000000000..3743455982a397cd2f62ede024960abb8223d8eb
GIT binary patch
literal 5940
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
L3^j|@?VkT1Js-Qn
new file mode 100644
index 0000000000000000000000000000000000000000..3bc9a155fbb4ce668f733a80486c66828e512c5a
GIT binary patch
literal 34263
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
N`klN)iP%T~{{uk1Xj}jQ
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/index.org
@@ -0,0 +1,47 @@
+#+SETUPFILE: org-setup.inc
+#+TITLE: Yet another snippet extension
+
+The YASnippet documentation has been split into separate parts:
+
+0. [[https://github.com/capitaomorte/yasnippet/blob/master/README.mdown][README]]
+
+   Contains an introduction, installation instructions and other important
+   notes.
+
+1. [[file:snippet-organization.org][Organizing Snippets]]
+
+   Describes ways to organize your snippets in the hard disk.
+
+2. [[file:snippet-expansion.org][Expanding Snippets]]
+
+   Describes how YASnippet chooses snippets for expansion at point.
+
+   Maybe, you'll want some snippets to be expanded in a particular mode,
+   or only under certain conditions, or be prompted using =ido=, etc...
+
+3. [[file:snippet-development.org][Writing Snippets]]
+
+   Describes the YASnippet definition syntax, which is very close (but
+   not equivalent) to Textmate's. Includes a section about converting
+   TextMate snippets.
+
+4. [[file:snippet-menu.org][The YASnippet menu]]
+
+   Explains how to use the YASnippet menu to explore, learn and modify
+   snippets.
+
+5. [[file:faq.org][Frequently asked questions]]
+
+   Answers to frequently asked questions.
+
+6. [[file:snippet-reference.org][YASnippet Symbol Reference]]
+
+   An automatically generated listing of all YASnippet commands,
+   (customization) variables, and functions.
+
+
+# Local Variables:
+# mode: org
+# fill-column: 80
+# coding: utf-8
+# End:
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/nav-menu.html.inc
@@ -0,0 +1,16 @@
+<nav>
+  <ul class="center">
+    <li> <a href="index.html">Overview</a>
+    <li> <a href="https://github.com/capitaomorte/yasnippet/blob/master/README.mdown">
+        Intro and Tutorial</a>
+    <li class="center">Snippet
+      <ul>
+        <li> <a href="snippet-organization.html">Organization</a>
+        <li> <a href="snippet-expansion.html">Expansion</a>
+        <li> <a href="snippet-development.html">Development</a>
+        <li> <a href="snippet-menu.html">Menu</a>
+      </ul>
+    <li> <a href="faq.html">FAQ</a>
+    <li> <a href="snippet-reference.html">Reference</a>
+  </ul>
+</nav>
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/org-setup.inc
@@ -0,0 +1,11 @@
+# -*- mode: org -*-
+
+#+STARTUP: showall
+
+#+LINK: sym file:snippet-reference.org::#%s
+
+#+OPTIONS: author:nil num:nil
+#+AUTHOR:
+# org < 8.0 use +STYLE, after use +HTML_HEAD
+#+STYLE: <link rel="stylesheet" type="text/css" href="stylesheets/manual.css" />
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="stylesheets/manual.css" />
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/snippet-development.org
@@ -0,0 +1,424 @@
+#+SETUPFILE: org-setup.inc
+
+#+TITLE: Writing snippets
+
+* Snippet development
+
+** Quickly finding snippets
+
+There are some ways you can quickly find a snippet file or create a new one:
+
+-  =M-x yas-new-snippet=
+
+   Creates a new buffer with a template for making a new snippet.
+   The buffer is in =snippet-mode= (see below). When you are done
+   editing the new snippet, use =C-c C-c= to save it. This will
+   prompt for a directory two steps: first, the snippet table
+   (with a default based on the major mode you started in), and then
+   then snippet collection directory (defaults to the first directory
+   in =yas-snippet-dirs=. (See [[file:snippet-organization.org][Organizing Snippets]]
+   for more detail on how snippets are organized.)
+
+-  =M-x yas-find-snippets=
+
+   Lets you find the snippet file in the directory the snippet was
+   loaded from (if it exists) like =find-file-other-window=. The
+   directory searching logic is similar to =M-x yas-new-snippet=.
+
+-  =M-x yas-visit-snippet-file=
+
+   Prompts you for possible snippet expansions like
+   [[sym:yas-insert-snippet][=yas-insert-snippet=]], but instead of expanding it, takes you directly
+   to the snippet definition's file, if it exists.
+
+Once you find this file it will be set to =snippet-mode= (see ahead) and
+you can start editing your snippet.
+
+** Using the =snippet-mode= major mode
+
+There is a major mode =snippet-mode= to edit snippets. You can set the
+buffer to this mode with =M-x snippet-mode=. It provides reasonably
+useful syntax highlighting.
+
+Two commands are defined in this mode:
+
+-  =M-x yas-load-snippet-buffer=
+
+     When editing a snippet, this loads the snippet into the correct
+     mode and menu. Bound to =C-c C-c= by default while in
+     =snippet-mode=.
+
+-  =M-x yas-tryout-snippet=
+
+     When editing a snippet, this opens a new empty buffer, sets it to
+     the appropriate major mode and inserts the snippet there, so you
+     can see what it looks like. This is bound to =C-c C-t= while in
+     =snippet-mode=.
+
+There are also /snippets for writing snippets/: =vars=, =$f= and =$m=
+:-).
+
+* File content
+
+A file defining a snippet generally contains the template to be
+expanded.
+
+Optionally, if the file contains a line of =# --=, the lines above it
+count as comments, some of which can be /directives/ (or meta data).
+Snippet directives look like =# property: value= and tweak certain
+snippets properties described below. If no =# --= is found, the whole
+file is considered the snippet template.
+
+Here's a typical example:
+
+#+BEGIN_SRC snippet
+  # contributor: pluskid <pluskid@gmail.com>
+  # name: __...__
+  # --
+  __${init}__
+#+END_SRC
+
+Here's a list of currently supported directives:
+
+** =# key:= snippet abbrev
+
+This is the probably the most important directive, it's the
+abbreviation you type to expand a snippet just before hitting the key
+that runs [[sym:yas-expand][=yas-expand=]]. If you don't specify this
+the snippet will not be expandable through the trigger mechanism.
+
+** =# name:= snippet name
+
+This is a one-line description of the snippet. It will be displayed in
+the menu. It's a good idea to select a descriptive name for a snippet --
+especially distinguishable among similar snippets.
+
+If you omit this name it will default to the file name the snippet was
+loaded from.
+
+** =# condition:= snippet condition
+
+This is a piece of Emacs-lisp code. If a snippet has a condition, then
+it will only be expanded when the condition code evaluate to some
+non-nil value.
+
+See also [[sym:yas-buffer-local-condition][=yas-buffer-local-condition=]] in
+[[./snippet-expansion.org][Expanding snippets]]
+
+** =# group:= snippet menu grouping
+
+When expanding/visiting snippets from the menu-bar menu, snippets for a
+given mode can be grouped into sub-menus . This is useful if one has too
+many snippets for a mode which will make the menu too long.
+
+The =# group:= property only affect menu construction (See
+[[./snippet-menu.org][the YASnippet menu]]) and the same effect can be
+achieved by grouping snippets into sub-directories and using the
+=.yas-make-groups= special file (for this see
+[[./snippet-organization.org][Organizing Snippets]]
+
+Refer to the bundled snippets for =ruby-mode= for examples on the
+=# group:= directive. Group can also be nested, e.g.
+=control structure.loops= tells that the snippet is under the =loops=
+group which is under the =control structure= group.
+
+** =# expand-env:= expand environment
+
+This is another piece of Emacs-lisp code in the form of a =let= /varlist
+form/, i.e. a list of lists assigning values to variables. It can be
+used to override variable values while the snippet is being expanded.
+
+Interesting variables to override are [[sym:yas-wrap-around-region][=yas-wrap-around-region=]] and
+[[sym:yas-indent-line][=yas-indent-line=]] (see [[./snippet-expansion.org][Expanding Snippets]]).
+
+As an example, you might normally have [[sym:yas-indent-line][=yas-indent-line=]] set to '=auto=
+and [[sym:yas-wrap-around-region][=yas-wrap-around-region=]] set to =t=, but for this particularly
+brilliant piece of ASCII art these values would mess up your hard work.
+You can then use:
+
+#+BEGIN_SRC snippet
+  # name: ASCII home
+  # expand-env: ((yas-indent-line 'fixed) (yas-wrap-around-region 'nil))
+  # --
+                  welcome to my
+              X      humble
+             / \      home,
+            /   \      $0
+           /     \
+          /-------\
+          |       |
+          |  +-+  |
+          |  | |  |
+          +--+-+--+
+#+END_SRC
+
+** =# binding:= direct keybinding
+
+You can use this directive to expand a snippet directly from a normal
+Emacs keybinding. The keybinding will be registered in the Emacs keymap
+named after the major mode the snippet is active for.
+
+Additionally a variable [[sym:yas-prefix][=yas-prefix=]] is set to to the prefix argument
+you normally use for a command. This allows for small variations on the
+same snippet, for example in this "html-mode" snippet.
+
+#+BEGIN_SRC snippet
+  # name: <p>...</p>
+  # binding: C-c C-c C-m
+  # --
+  <p>`(when yas-prefix "\n")`$0`(when yas-prefix "\n")`</p>
+#+END_SRC
+
+This binding will be recorded in the keymap =html-mode-map=. To expand a
+paragraph tag newlines, just press =C-u C-c C-c C-m=. Omitting the =C-u=
+will expand the paragraph tag without newlines.
+
+** =# type:= =snippet= or =command=
+
+If the =type= directive is set to =command=, the body of the snippet
+is interpreted as lisp code to be evaluated when the snippet is
+triggered.
+
+If it's =snippet= (the default when there is no =type= directive), the
+snippet body will be parsed according to the [[Template Syntax]],
+described below.
+
+** =# uuid:= unique identifier
+
+This provides to a way to identify a snippet, independent of its name.
+Loading a second snippet file with the same uuid would replace the
+previous snippet.
+
+** =# contributor:= snippet author
+
+This is optional and has no effect whatsoever on snippet functionality,
+but it looks nice.
+
+* <<Template syntax>>
+
+The syntax of the snippet template is simple but powerful, very similar
+to TextMate's.
+
+** Plain Text
+
+Arbitrary text can be included as the content of a template. They are
+usually interpreted as plain text, except =$= and =`=. You need to
+use =\= to escape them: =\$= and =\`=. The =\= itself may also needed to be
+escaped as =\\= sometimes.
+
+** Embedded Emacs-lisp code
+
+Emacs-Lisp code can be embedded inside the template, written inside
+back-quotes (=`=). The lisp forms are evaluated when the snippet is
+being expanded. The evaluation is done in the same buffer as the
+snippet being expanded.
+
+Here's an example for c-mode` to calculate the header file guard
+dynamically:
+
+#+BEGIN_SRC snippet
+  #ifndef ${1:_`(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`_H_}
+  #define $1
+
+  $0
+
+  #endif /* $1 */
+#+END_SRC
+
+From version 0.6, snippets expansions are run with some special
+Emacs-lisp variables bound. One of this is [[sym:yas-selected-text][=yas-selected-text=]]. You can
+therefore define a snippet like:
+
+#+BEGIN_SRC snippet
+  for ($1;$2;$3) {
+    `yas-selected-text`$0
+  }
+#+END_SRC
+
+to "wrap" the selected region inside your recently inserted snippet.
+Alternatively, you can also customize the variable
+[[sym:yas-wrap-around-region][=yas-wrap-around-region=]] to =t= which will do this automatically.
+
+** Tab stop fields
+
+Tab stops are fields that you can navigate back and forth by =TAB= and
+=S-TAB=. They are written by =$= followed with a number. =$0= has the
+special meaning of the /exit point/ of a snippet. That is the last place
+to go when you've traveled all the fields. Here's a typical example:
+
+#+BEGIN_SRC snippet
+  <div$1>
+      $0
+  </div>
+#+END_SRC
+** Placeholder fields
+
+Tab stops can have default values -- a.k.a placeholders. The syntax is
+like this:
+
+#+BEGIN_SRC snippet
+  ${N:default value}
+#+END_SRC
+
+They acts as the default value for a tab stop. But when you firstly
+type at a tab stop, the default value will be replaced by your typing.
+The number can be omitted if you don't want to create [[mirrors]] or
+[[transformations]] for this field.
+
+** <<Mirrors>>
+
+We refer the tab stops with placeholders as a /field/. A field can have
+mirrors. Its mirrors will get updated when you change the text of a
+field. Here's an example:
+
+#+BEGIN_SRC snippet
+  \begin{${1:enumerate}}
+      $0
+  \end{$1}
+#+END_SRC
+
+When you type "document" at =${1:enumerate}=, the word "document" will
+also be inserted at =\end{$1}=. The best explanation is to see the
+screencast([[http://www.youtube.com/watch?v=vOj7btx3ATg][YouTube]] or [[http://yasnippet.googlecode.com/files/yasnippet.avi][avi video]]).
+
+The tab stops with the same number to the field act as its mirrors. If
+none of the tab stops has an initial value, the first one is selected as
+the field and others mirrors.
+
+** Mirrors with <<transformations>>
+
+If the value of an =${n:=-construct starts with and contains =$(=,
+then it is interpreted as a mirror for field =n= with a
+transformation. The mirror's text content is calculated according to
+this transformation, which is Emacs-lisp code that gets evaluated in
+an environment where the variable [[sym:yas-text][=yas-text=]] is bound to the text
+content (string) contained in the field =n=. Here's an example for
+Objective-C:
+
+#+BEGIN_SRC snippet
+  - (${1:id})${2:foo}
+  {
+      return $2;
+  }
+
+  - (void)set${2:$(capitalize yas-text)}:($1)aValue
+  {
+      [$2 autorelease];
+      $2 = [aValue retain];
+  }
+  $0
+#+END_SRC
+
+Look at =${2:$(capitalize yas-text)}=, it is a mirror with
+transformation instead of a field. The actual field is at the first
+line: =${2:foo}=. When you type text in =${2:foo}=, the transformation
+will be evaluated and the result will be placed there as the
+transformed text. So in this example, if you type "baz" in the field,
+the transformed text will be "Baz". This example is also available in
+the screencast.
+
+Another example is for =rst-mode=. In reStructuredText, the document
+title can be some text surrounded by "===" below and above. The "==="
+should be at least as long as the text. So
+
+#+BEGIN_SRC rst
+  =====
+  Title
+  =====
+#+END_SRC
+
+is a valid title but
+
+#+BEGIN_SRC rst
+  ===
+  Title
+  ===
+#+END_SRC
+
+is not. Here's an snippet for rst title:
+
+#+BEGIN_SRC snippet
+  ${1:$(make-string (string-width yas-text) ?\=)}
+  ${1:Title}
+  ${1:$(make-string (string-width yas-text) ?\=)}
+
+  $0
+#+END_SRC
+
+** Fields with transformations
+
+From version 0.6 on, you can also have lisp transformation inside
+fields. These work mostly mirror transformations but are evaluated when
+you first enter the field, after each change you make to the field and
+also just before you exit the field.
+
+The syntax is also a tiny bit different, so that the parser can
+distinguish between fields and mirrors. In the following example
+
+:  #define "${1:mydefine$(upcase yas-text)}"
+
+=mydefine= gets automatically upcased to =MYDEFINE= once you enter the
+field. As you type text, it gets filtered through the transformation
+every time.
+
+Note that to tell this kind of expression from a mirror with a
+transformation, YASnippet needs extra text between the =:= and the
+transformation's =$=. If you don't want this extra-text, you can use two
+=$='s instead.
+
+:  #define "${1:$$(upcase yas-text)}"
+
+Please note that as soon as a transformation takes place, it changes the
+value of the field and sets it its internal modification state to
+=true=. As a consequence, the auto-deletion behaviour of normal fields
+does not take place. This is by design.
+
+** Choosing fields value from a list and other tricks
+
+As mentioned, the field transformation is invoked just after you enter
+the field, and with some useful variables bound, notably
+[[sym:yas-modified-p][=yas-modified-p=]] and [[sym:yas-moving-away-p][=yas-moving-away-p=]]. Because of this feature you
+can place a transformation in the primary field that lets you select
+default values for it.
+
+The [[sym:yas-choose-value][=yas-choose-value=]] does this work for you. For example:
+
+#+BEGIN_SRC snippet
+  <div align="${2:$$(yas-choose-value '("right" "center" "left"))}">
+    $0
+  </div>
+#+END_SRC
+
+See the definition of [[sym:yas-choose-value][=yas-choose-value=]] to see how it was written using
+the two variables.
+
+Here's another use, for LaTeX-mode, which calls reftex-label just as you
+enter snippet field 2. This one makes use of [[sym:yas-modified-p][=yas-modified-p=]] directly.
+
+#+BEGIN_SRC snippet
+  \section{${1:"Titel der Tour"}}%
+  \index{$1}%
+  \label{{2:"waiting for reftex-label call..."$(unless yas-modified-p (reftex-label nil 'dont-
+  insert))}}%
+#+END_SRC
+
+The function [[sym:yas-verify-value][=yas-verify-value=]] has another neat trick, and makes use
+of [[sym:yas-moving-away-p][=yas-moving-away-p=]]. Try it and see! Also, check out this [[http://groups.google.com/group/smart-snippet/browse_thread/thread/282a90a118e1b662][thread]]
+
+** Nested placeholder fields
+
+From version 0.6 on, you can also have nested placeholders of the type:
+
+#+BEGIN_SRC snippet
+  <div${1: id="${2:some_id}"}>$0</div>
+#+END_SRC
+
+This allows you to choose if you want to give this =div= an =id=
+attribute. If you tab forward after expanding it will let you change
+"some\_id" to whatever you like. Alternatively, you can just press =C-d=
+(which executes [[sym:yas-skip-and-clear-or-delete-char][=yas-skip-and-clear-or-delete-char=]]) and go straight to
+the exit marker.
+
+By the way, =C-d= will only clear the field if you cursor is at the
+beginning of the field /and/ it hasn't been changed yet. Otherwise, it
+performs the normal Emacs =delete-char= command.
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/snippet-expansion.org
@@ -0,0 +1,264 @@
+#+SETUPFILE: org-setup.inc
+
+#+TITLE: Expanding snippets
+
+  This section describes how YASnippet chooses snippets for expansion at point.
+
+  Maybe, you'll want some snippets to be expanded in a particular
+  mode, or only under certain conditions, or be prompted using
+
+* Triggering expansion
+
+   You can use YASnippet to expand snippets in different ways:
+
+   - When [[sym:yas-minor-mode][=yas-minor-mode=]] is active:
+     - Type the snippet's *trigger key* then calling [[sym:yas-expand][=yas-expand=]]
+       (bound to =TAB= by default).
+
+     - Use the snippet's *keybinding*.
+
+     - By expanding directly from the "YASnippet" menu in the menu-bar
+
+     - Using hippie-expand
+
+   - Call [[sym:yas-insert-snippet][=yas-insert-snippet=]] (use =M-x yas-insert-snippet== or its
+     keybinding =C-c & C-s=).
+
+   - Use m2m's excellent auto-complete
+     TODO: example for this
+
+   - Expanding from emacs-lisp code
+
+** Trigger key
+
+[[sym:yas-expand][=yas-expand=]] tries to expand a /snippet abbrev/ (also known as
+/snippet key/) before point.
+
+When [[sym:yas-minor-mode][=yas-minor-mode=]] is enabled, it binds [[sym:yas-expand][=yas-expand=]] to =TAB= and
+=<tab>= by default, however, you can freely set it to some other key:
+
+#+begin_src emacs-lisp :exports code
+   (define-key yas-minor-mode-map (kbd "<tab>") nil)
+   (define-key yas-minor-mode-map (kbd "TAB") nil)
+   (define-key yas-minor-mode-map (kbd "<the new key>") 'yas-expand)
+#+end_src
+
+To enable the YASnippet minor mode in all buffers globally use the
+command [[sym:yas-global-mode][=yas-global-mode=]]. This will enable a modeline indicator,
+=yas=:
+
+[[./images/minor-mode-indicator.png]]
+
+When you use [[sym:yas-global-mode][=yas-global-mode=]] you can also selectively disable
+YASnippet in some buffers by setting the buffer-local variable
+[[sym:yas-dont-active][=yas-dont-active=]] in the buffer's mode hook.
+
+*** Fallback behaviour
+
+[[sym:yas-fallback-behaviour][=yas-fallback-behaviour=]] is a customization variable bound to
+'=call-other-command= by default. If [[sym:yas-expand][=yas-expand=]] failed to find any
+suitable snippet to expand, it will disable the minor mode temporarily
+and find if there's any other command bound to the same key.
+
+If found, the command will be called. Usually this works very well
+--when there's a snippet, expand it, otherwise, call whatever command
+originally bind to the trigger key.
+
+However, you can change this behavior by customizing the
+[[sym:yas-fallback-behavior][=yas-fallback-behavior=]] variable. If you set this variable to
+'=return-nil=, it will return =nil= instead of trying to call the
+/original/ command when no snippet is found.
+
+** Insert at point
+
+The command [[#yas-insert-snippet][=yas-insert-snippet=]] lets you insert snippets at point
+/for your current major mode/. It prompts you for the snippet key
+first, and then for a snippet template if more than one template
+exists for the same key.
+
+The list presented contains the snippets that can be inserted at point,
+according to the condition system. If you want to see all applicable
+snippets for the major mode, prefix this command with =C-u=.
+
+The prompting methods used are again controlled by
+[[sym:yas-prompt-functions][=yas-prompt-functions=]].
+
+** Snippet keybinding
+
+See the section of the =# binding:= directive in
+[[./snippet-development.org][Writing Snippets]].
+
+** Expanding from the menu
+
+See [[./snippet-menu.org][the YASnippet Menu]].
+
+** Expanding with =hippie-expand=
+
+To integrate with =hippie-expand=, just put
+[[sym:yas-hippie-try-expand][=yas-hippie-try-expand=]] in
+=hippie-expand-try-functions-list=. This probably makes more sense
+when placed at the top of the list, but it can be put anywhere you
+prefer.
+
+** Expanding from emacs-lisp code
+
+Sometimes you might want to expand a snippet directly from your own
+elisp code. You should call [[sym:yas-expand-snippet][=yas-expand-snippet=]] instead of
+[[sym:yas-expand][=yas-expand=]] in this case. [[sym:yas-expand-snippet][=yas-expand-snippet=]] takes a string in
+snippet template syntax, if you want to expand an existing snippet you
+can use [[sym:yas-lookup-snippet][=yas-lookup-snippet=]] to find its contents by name.
+
+As with expanding from the menubar, the condition system and multiple
+candidates doesn't affect expansion (the condition system does affect
+[[sym:yas-lookup-snippet][=yas-lookup-snippet=]] though). In fact, expanding from the YASnippet
+menu has the same effect of evaluating the follow code:
+
+#+BEGIN_SRC emacs-lisp
+  (yas-expand-snippet template)
+#+END_SRC
+
+See the internal documentation on [[sym:yas-expand-snippet][=yas-expand-snippet=]] and
+[[sym:yas-lookup-snippet][=yas-lookup-snippet=]] for more information.
+
+* Controlling expansion
+
+** Eligible snippets
+
+YASnippet does quite a bit of filtering to find out which snippets are
+eligible for expanding at the current cursor position.
+
+In particular, the following things matter:
+
+-  Currently loaded snippets tables
+
+   These are loaded from a directory hierarchy in your file system. See
+   [[./snippet-organization.org][Organizing Snippets]]. They are named
+   after major modes like =html-mode=, =ruby-mode=, etc...
+
+-  Major mode of the current buffer
+
+   If the currrent major mode matches one of the loaded snippet tables,
+   then all that table's snippets are considered for expansion. Use
+   =M-x describe-variable RET major-mode RET= to find out which major
+   mode you are in currently.
+
+-  Parent tables
+
+   Snippet tables defined as the parent of some other eligible table are
+   also considered. This works recursively, i.e. parents of parents of
+   eligible tables are also considered.
+
+-  Buffer-local list of extra modes
+
+   Use [[#yas-activate-extra-mode][=yas-activate-extra-mode=]] to
+   consider snippet tables whose name does not correspond to a major
+   mode. Typically, you call this from a minor mode hook, for example:
+
+#+BEGIN_SRC emacs-lisp
+  ;; When entering rinari-minor-mode, consider also the snippets in the
+  ;; snippet table "rails-mode"
+  (add-hook 'rinari-minor-mode-hook
+            #'(lambda ()
+                (yas-activate-extra-mode 'rails-mode)))
+#+END_SRC
+
+-  Buffer-local
+   [[sym:yas-buffer-local-condition][=yas-buffer-local-condition=]]
+   variable
+
+   This variable provides finer grained control over what snippets can
+   be expanded in the current buffer. The default value won't let you
+   expand snippets inside comments or string literals for example. See
+   The condition system\_ for more info.
+
+** The condition system
+
+Consider this scenario: you are an old Emacs hacker. You like the
+abbrev-way and bind [[sym:yas-expand][=yas-expand=]] to =SPC=. However, you don't want
+=if= to be expanded as a snippet when you are typing in a comment
+block or a string (e.g. in =python-mode=).
+
+If you use the =# condition := directive (see
+[[./snippet-development.org][Writing Snippets]]) you could just specify
+the condition for =if= to be =(not (python-in-string/comment))=. But how
+about =while=, =for=, etc. ? Writing the same condition for all the
+snippets is just boring. So has a buffer local variable
+[[sym:yas-buffer-local-condition][=yas-buffer-local-condition=]]. You can set this variable to
+=(not (python-in-string/comment))= in =python-mode-hook=.
+
+Then, what if you really want some particular snippet to expand even
+inside a comment? Set [[sym:yas-buffer-local-condition][=yas-buffer-local-condition=]] like this
+
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'python-mode-hook
+            (lambda ()
+              (setq yas-buffer-local-condition
+                    '(if (python-in-string/comment)
+                         '(require-snippet-condition . force-in-comment)
+                       t))))
+#+END_SRC
+
+... and specify the condition for a snippet that you're going to expand
+in comment to be evaluated to the symbol =force-in-comment=. Then it can
+be expanded as you expected, while other snippets like =if= still can't
+expanded in comment.
+
+For the full set of possible conditions, see the documentation for
+[[sym:yas-buffer-local-condition][=yas-buffer-local-condition=]].
+
+** Multiples snippet with the same key
+
+The rules outlined [[Eligible%20snippets][above]] can return more than
+one snippet to be expanded at point.
+
+When there are multiple candidates, YASnippet will let you select one.
+The UI for selecting multiple candidate can be customized through
+[[sym:yas-prompt-functions][=yas-prompt-functions=]] , which defines your preferred methods of being
+prompted for snippets.
+
+You can customize it with
+=M-x customize-variable RET yas-prompt-functions RET=. Alternatively you
+can put in your emacs-file:
+
+#+BEGIN_SRC emacs-lisp
+  (setq yas-prompt-functions '(yas-x-prompt yas-dropdown-prompt))
+#+END_SRC
+
+Currently there are some alternatives solution with YASnippet.
+
+*** Use the X window system
+
+[[./images/x-menu.png]]
+
+The function [[sym:yas-x-prompt][=yas-x-prompt=]] can be used to show a popup menu for you to
+select. This menu will be part of you native window system widget, which
+means:
+
+-  It usually looks beautiful. E.g. when you compile Emacs with gtk
+   support, this menu will be rendered with your gtk theme.
+-  Your window system may or may not allow to you use =C-n=, =C-p= to
+   navigate this menu.
+-  This function can't be used when in a terminal.
+
+*** Minibuffer prompting
+
+[[./images/ido-menu.png]]
+
+You can use functions [[sym:yas-completing-prompt][=yas-completing-prompt=]] for the classic emacs
+completion method or [[sym:yas-ido-prompt][=yas-ido-prompt=]] for a much nicer looking method.
+The best way is to try it. This works in a terminal.
+
+*** Use =dropdown-menu.el=
+
+[[./images/dropdown-menu.png]]
+
+The function [[sym:yas-dropdown-prompt][=yas-dropdown-prompt=]] can also be placed in the
+[[sym:yas-prompt-functions][=yas-prompt-functions=]] list.
+
+This works in both window system and terminal and is customizable, you
+can use =C-n=, =C-p= to navigate, =q= to quit and even press =6= as a
+shortcut to select the 6th candidate.
+
+*** Roll your own
+
+See the documentation on variable [[sym:yas-prompt-functions][=yas-prompt-functions=]]
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/snippet-menu.org
@@ -0,0 +1,68 @@
+#+SETUPFILE: org-setup.inc
+
+#+TITLE: YASnippet menu
+
+When [[sym:yas-minor-mode][=yas-minor-mode=]] is active, YASnippet will setup a menu just after
+the "Buffers" menu in the menubar.
+
+In this menu, you can find
+
+-  The currently loaded snippet definitions, organized by major mode,
+   and optional grouping.
+
+-  A rundown of the most common commands, (followed by their
+   keybindings) including commands to load directories and reload all
+   snippet definitions.
+
+-  A series of submenus for customizing and exploring YASnippet
+   behavior.
+
+[[./images/menu-1.png]]
+
+* Loading snippets from menu
+
+Invoking "Load snippets..." from the menu invokes [[sym:yas-load-directory][=yas-load-directory=]]
+and prompts you for a snippet directory hierarchy to load.
+
+Also useful is the "Reload everything" item to invoke [[#yas-reload-all][=yas-reload-all=]]
+which uncondionally reloads all the snippets directories defined in
+[[sym:yas-snippet-dirs][=yas-snippet-dirs=]] and rebuilds the menus.
+
+* Snippet menu behavior
+
+YASnippet will list in this section all the loaded snippet definitions
+organized by snippet table name.
+
+You can use this section to explore currently loaded snippets. If you
+click on one of them, the default behavior is to expand it,
+unconditionally, inside the current buffer.
+
+You can however, customize variable [[sym:yas-visit-from-menu][=yas-visit-from-menu=]] to be =t=
+which will take you to the snippet definition file when you select it
+from the menu.
+
+If you want the menu show only snippet tables whose name corresponds to
+a "real" major mode. You do this by setting [[sym:yas-use-menu][=yas-use-menu=]] to
+'=real-modes=.
+
+Finally, to have the menu show only the tables for the currently active
+mode, set [[sym:yas-use-menu][=yas-use-menu=]] to =abbreviate=.
+
+These customizations can also be found in the menu itself, under the
+"Snippet menu behavior" submenu.
+
+* Controlling indenting
+
+The "Indenting" submenu contains options to control the values of
+[[sym:yas-indent-line][=yas-indent-line=]] and [[sym:yas-also-auto-indent-first-line][=yas-also-auto-indent-first-line=]]. See
+[[./snippet-development.org][Writing snippets]].
+
+* Prompting method
+
+The "Prompting method" submenu contains options to control the value of
+[[sym:yas-prompt-functions][=yas-prompt-functions=]]. See [[./snippet-expansion.org][Expanding snippets]].
+
+* Misc
+
+The "Misc" submenu contains options to control the values of more
+variables.
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/snippet-organization.org
@@ -0,0 +1,131 @@
+#+SETUPFILE: org-setup.inc
+
+#+TITLE: Organizing snippets
+
+* Basic structure
+
+   Snippet collections can be stored in plain text files. They are arranged by
+   sub-directories naming *snippet tables*. These mostly name Emacs major names.
+
+   #+begin_example
+   .
+   |-- c-mode
+   |   `-- printf
+   |-- java-mode
+   |   `-- println
+   `-- text-mode
+       |-- email
+       `-- time
+   #+end_example
+
+   The collections are loaded into *snippet tables* which the
+   triggering mechanism (see [[file:snippet-expansion.org][Expanding Snippets]]) looks up and
+   (hopefully) causes the right snippet to be expanded for you.
+
+* Setting up =yas-snippet-dirs=
+
+   The emacs variable [[sym:yas-snippet-dirs][=yas-snippet-dirs=]] tells YASnippet
+   which collections to consider. It's used when you activate
+   [[sym:yas-global-mode][=yas-global-mode=]] or call
+   [[sym:yas-reload-all][=yas-reload-all=]] interactively.
+
+   The default considers:
+
+    - a personal collection that lives in =~/.emacs.d/snippets=
+    - the bundled collection, taken as a relative path to =yasnippet.el= localtion
+
+   When you come across other snippet collections, do the following to try them
+   out:
+
+   #+begin_src emacs-lisp :exports code
+   ;; Develop in ~/emacs.d/mysnippets, but also
+   ;; try out snippets in ~/Downloads/interesting-snippets
+   (setq yas-snippet-dirs '("~/emacs.d/mysnippets"
+                              "~/Downloads/interesting-snippets"))
+
+   ;; OR, keeping YASnippet defaults try out ~/Downloads/interesting-snippets
+   (setq yas-snippet-dirs (append yas-snippet-dirs
+                                  '("~/Downloads/interesting-snippets")))
+   #+end_src
+
+   Collections appearing earlier in the list override snippets with same names
+   appearing in collections later in the list. [[sym:yas-new-snippet][=yas-new-snippet=]] always stores
+   snippets in the first collection.
+
+* The =.yas-parents= file
+
+   It's very useful to have certain modes share snippets between
+   themselves. To do this, choose a mode subdirectory and place a
+   =.yas-parents= containing a whitespace-separated list of other mode
+   names. When you reload those modes become parents of the original
+   mode.
+
+   #+begin_example
+   .
+   |-- c-mode
+   |   |-- .yas-parents    # contains "cc-mode text-mode"
+   |   `-- printf
+   |-- cc-mode
+   |   |-- for
+   |   `-- while
+   |-- java-mode
+   |   |-- .yas-parents    # contains "cc-mode text-mode"
+   |   `-- println
+   `-- text-mode
+       |-- email
+       `-- time
+   #+end_example
+
+
+* TODO The =.yas-make-groups= file
+
+   If you place an empty plain text file =.yas-make-groups= inside one
+   of the mode directories, the names of these sub-directories are
+   considered groups of snippets and [[snippet-menu.org][the menu]] is organized much more
+   cleanly:
+
+   [[./images/menu-groups.png]]
+
+   Another way to achieve this is to place a =# group:= directive
+   inside the snippet definition. See [[./snippet-development.org][Writing Snippets]].
+
+   #+begin_example
+   $ tree ruby-mode/
+   ruby-mode/
+   |-- .yas-make-groups
+   |-- collections
+   |   |-- each
+   |   `-- ...
+   |-- control structure
+   |   |-- forin
+   |   `-- ...
+   |-- definitions
+   |   `-- ...
+   `-- general
+      `-- ...
+   #+end_example
+
+   Yet another way to create a nice snippet menu is to write into
+   =.yas-make-groups= a menu definition. TODO
+
+* TODO The =.yas-setup.el= file
+
+** TODO
+
+* The =.yas-compiled-snippet.el= file
+
+   You may compile a top-level snippet directory with the
+   =yas-compile-directory= function, which will create a
+   =.yas-compiled-snippets.el= file under each mode subdirectory,
+   which contains definitions for all snippets in the subdirectory.
+   Compilation helps improve loading time.
+
+   Alternatively, you may compile all directories in the list
+   =yas-snippet-dirs= with the =yas-recompile-all= function.
+
+* The =.yas-skip= file
+
+  A =.yas-skip= file in a mode's snippet subdirectory tells YASnippet
+  not to load snippets from there.
+
+** TODO
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/snippet-reference.org
@@ -0,0 +1,12 @@
+#+SETUPFILE: org-setup.inc
+
+#+TITLE: Reference
+
+#+BEGIN_SRC emacs-lisp :exports results :results value raw
+(yas--document-symbols 1 `("Interactive functions" . ,#'interactive-form)
+                         `("Customization variables" . ,#'(lambda (sym)
+                                                            (and (boundp sym)
+                                                                 (get sym 'standard-value))))
+                         `("Useful functions" . ,#'fboundp)
+                         `("Useful variables" . ,#'boundp))
+#+END_SRC
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/stylesheets/manual.css
@@ -0,0 +1,26 @@
+nav > ul > li.center > ul {
+    padding: 0;
+}
+
+nav li {
+    vertical-align: top;
+
+    display: inline;
+    list-style-type: none;
+    padding: 0.5em;
+}
+
+nav > ul > li {
+    display: inline-block;
+}
+
+/* match org's css for <pre> */
+code {
+    background-color: #F3F5F7;
+    font-family: courier, monospace;
+}
+
+#content {
+    margin-left: 5%;
+    margin-right: 10%;
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/stylesheets/styles.css
@@ -0,0 +1,93 @@
+@media all
+{
+    body {
+        margin: 1em auto;
+        /*margin: 10px 18% 10px 18%;*/
+        font-family: Arial;
+        /*text-align: justify;*/
+        font-size: 14pt;
+        padding: 10px;
+        line-height: 1.2em;
+        max-width: 600pt;
+    }
+
+    div#table-of-contents {
+        position: fixed;
+        left: 0%;
+        right: 0%;
+        top: 0px;
+        z-index: 100;
+        background: black;
+    }
+
+    div#table-of-contents h2 {
+        display: none;
+    }
+
+    div#table-of-contents a {
+        text-decoration: none;
+        color: white;
+    }
+
+    div#table-of-contents a:visited {
+        color: white;
+    }
+
+    div#table-of-contents a:hover {
+        color: orange;
+    }
+
+    div.outline-2 h2{
+        padding-top: 50px;
+    }
+
+    div#text-table-of-contents {
+        text-color: white;
+        text-align: center;
+        margin-left: 30%;
+        margin-right: 30%;
+    }
+
+    div#text-table-of-contents ul {
+        height: 2em;
+        width: 500px;
+        list-style: none;
+        margin: auto;
+    }
+
+    div#text-table-of-contents ul li {
+        float: left;
+        margin-left:auto;
+        margin-right: auto;
+        padding-left: 10px;
+    }
+
+    div#postamble{
+        position: fixed;
+        width: 800px;
+        height: 250px;
+        left: 50%;
+        right: 50%;
+        margin:-75px 0 0 -400px;
+        bottom: -20px;
+        font-size: 10pt;
+        color: grey;
+        background: url('siscog-bottom-logo.png') no-repeat;
+        /* background-size: 100% 100%; */
+    }
+
+    div#postamble *{
+        display: none;
+    }
+
+    div#postamble p.date{
+        position: relative;
+        bottom: -200px;
+        text-align: center;
+        display: block;
+    }
+
+
+
+
+}
\ No newline at end of file
new file mode 100755
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/doc/yas-doc-helper.el
@@ -0,0 +1,168 @@
+;;; yas-doc-helper.el --- Help generate documentation for YASnippet
+
+;; Copyright (C) 2012, 2013  Free Software Foundation, Inc.
+
+;; Author: João Távora <joaotavora@gmail.com>
+;; Keywords: convenience
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Some functions to help generate YASnippet docs
+
+;;; Code:
+
+(eval-when-compile
+  (require 'cl))
+(require 'org)
+(or (require 'org-publish nil t)
+    (require 'ox-publish))
+(require 'yasnippet) ; docstrings must be loaded
+
+(defun yas--org-raw-html (tag content)
+  ;; in version 8.0 org-mode changed the export syntax, see
+  ;; http://orgmode.org/worg/org-8.0.html#sec-8-1
+  (format (if (version< org-version "8.0.0")
+              "@<%s>%s@</%s>"                ; old: @<tag>
+            "@@html:<%s>@@%s@@html:</%s>@@") ; new: @@html:<tag>@@
+          tag content tag))
+
+(defun yas--document-symbol (symbol level)
+  (flet ((concat-lines (&rest lines)
+                       (mapconcat #'identity lines "\n")))
+    (let* ((stars (make-string level ?*))
+           (args (and (fboundp symbol)
+                      (mapcar #'symbol-name (help-function-arglist symbol t))))
+           (heading (cond ((fboundp symbol)
+                           (format
+                            "%s =%s= (%s)" stars symbol
+                            (mapconcat (lambda (a)
+                                         (format (if (string-prefix-p "&" a)
+                                                     "/%s/" "=%s=") a))
+                                       args " ")))
+                          (t
+                           (format "%s =%s=\n" stars symbol))))
+           (after-heading
+            (concat-lines ":PROPERTIES:"
+                          (format ":CUSTOM_ID: %s" symbol)
+                          ":END:"))
+           (body (or (cond ((fboundp symbol)
+                            (let ((doc-synth (car-safe (get symbol 'function-documentation))))
+                              (if (functionp doc-synth)
+                                  (funcall doc-synth nil)
+                                (documentation symbol t))))
+                           ((boundp symbol)
+                            (documentation-property symbol 'variable-documentation t))
+                           (t
+                            (format "*WARNING*: no symbol named =%s=" symbol)))
+                     (format "*WARNING*: no doc for symbol =%s=" symbol)))
+           (case-fold-search nil))
+      ;; do some transformations on the body:
+      ;; ARGxxx becomes @<code>arg@</code>xxx
+      ;; FOO becomes /foo/
+      ;; `bar' becomes [[#bar][=bar=]]
+      (setq body (replace-regexp-in-string
+                  "\\<\\([A-Z][-A-Z0-9]+\\)\\(\\sw+\\)?\\>"
+                  #'(lambda (match)
+                      (let* ((match1 (match-string 1 match))
+                             (prefix (downcase match1))
+                             (suffix (match-string 2 match))
+                             (fmt (cond
+                                   ((member prefix args)
+                                    (yas--org-raw-html "code" "%s"))
+                                   ((null suffix) "/%s/"))))
+                        (if fmt (format fmt prefix)
+                          match1)))
+                  body t t 1)
+            body (replace-regexp-in-string
+                  "`\\([a-z-]+\\)'"
+                  #'(lambda (match)
+                      (let* ((name (downcase (match-string 1 match)))
+                             (sym (intern name)))
+                        (if (memq sym yas--exported-syms)
+                            (format "[[#%s][=%s=]]" name name)
+                          (format "=%s=" name))))
+                  body t))
+      ;; output the paragraph
+      ;;
+      (concat-lines heading
+                    after-heading
+                    body))))
+
+(defun yas--document-symbols (level &rest names-and-predicates)
+  (let ((sym-lists (make-vector (length names-and-predicates) nil))
+        (stars (make-string level ?*)))
+    (loop for sym in yas--exported-syms
+          do (loop for test in (mapcar #'cdr names-and-predicates)
+                   for i from 0
+                   do (when (funcall test sym)
+                        (push sym (aref sym-lists i))
+                        (return))))
+    (loop for slist across sym-lists
+          for name in (mapcar #'car names-and-predicates)
+          concat (format "\n%s %s\n" stars name)
+          concat (mapconcat (lambda (sym)
+                              (yas--document-symbol sym (1+ level)))
+                            slist "\n\n"))))
+
+(defun yas--internal-link-snippet ()
+  (interactive)
+  (yas-expand-snippet "[[#$1][=${1:`yas/selected-text`}=]]"))
+
+(define-key org-mode-map [M-f8] 'yas--internal-link-snippet)
+
+;; This lets all the org files be exported to HTML with
+;; `org-publish-current-project' (C-c C-e P).
+
+(let* ((dir (if load-file-name (file-name-directory load-file-name)
+              default-directory))
+       (rev (with-temp-file (expand-file-name "html-revision" dir)
+              (or (when (eq (call-process "git" nil t nil
+                                          "rev-parse" "--verify" "HEAD") 0)
+                    (buffer-string))
+                  (princ yas--version (current-buffer)))))
+       (proj-plist
+        `(,@(when (fboundp 'org-html-publish-to-html)
+              '(:publishing-function org-html-publish-to-html))
+          :base-directory ,dir :publishing-directory ,dir
+          :html-preamble
+          ,(with-temp-buffer
+             (insert-file-contents (expand-file-name "nav-menu.html.inc" dir))
+             (buffer-string))
+          :html-postamble
+          ,(concat "<hr><p class='creator'>Generated by %c on %d from "
+                   rev "</p>\n"
+                   "<p class='xhtml-validation'>%v</p>\n")))
+       (project (assoc "yasnippet" org-publish-project-alist)))
+  (if project
+      (setcdr project proj-plist)
+    (push `("yasnippet" . ,proj-plist)
+          org-publish-project-alist)))
+
+(defun yas--generate-html-batch ()
+  (let ((org-publish-use-timestamps-flag nil)
+        (org-export-copy-to-kill-ring nil)
+        (org-confirm-babel-evaluate nil)
+        (make-backup-files nil))
+    (org-publish "yasnippet" 'force)))
+
+
+
+(provide 'yas-doc-helper)
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; coding: utf-8
+;; End:
+;;; yas-doc-helper.el ends here
rename from elpa/yasnippet-0.8.0/snippets/c++-mode/.yas-parents
rename to elpa/yasnippet-0.9.1/snippets/c++-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/c++-mode/beginend
rename to elpa/yasnippet-0.9.1/snippets/c++-mode/beginend
rename from elpa/yasnippet-0.8.0/snippets/c++-mode/class
rename to elpa/yasnippet-0.9.1/snippets/c++-mode/class
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/c++-mode/ns
@@ -0,0 +1,4 @@
+# name: namespace ...
+# key: ns
+# --
+namespace
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/c++-mode/template
rename to elpa/yasnippet-0.9.1/snippets/c++-mode/template
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/c++-mode/using
@@ -0,0 +1,5 @@
+# name: using namespace ...
+# key: using
+# --
+using namespace ${std};
+$0
\ No newline at end of file
copy from elpa/yasnippet-0.8.0/snippets/c++-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/c-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/c-mode/fopen
rename to elpa/yasnippet-0.9.1/snippets/c-mode/fopen
rename from elpa/yasnippet-0.8.0/snippets/c-mode/printf
rename to elpa/yasnippet-0.9.1/snippets/c-mode/printf
--- a/elpa/yasnippet-0.8.0/snippets/c-mode/printf
+++ b/elpa/yasnippet-0.9.1/snippets/c-mode/printf
@@ -1,5 +1,5 @@
 # -*- mode: snippet -*-
-# name: printf 
+# name: printf
 # contributor: joaotavora
 # key: printf
 # --
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/do
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/do
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/for
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/for
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/if
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/if
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/inc
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/inc
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/inc.1
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/inc.1
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/main
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/main
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/once
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/once
rename from elpa/yasnippet-0.8.0/snippets/cc-mode/struct
rename to elpa/yasnippet-0.9.1/snippets/cc-mode/struct
rename from elpa/yasnippet-0.8.0/snippets/cperl-mode/.yas-parents
rename to elpa/yasnippet-0.9.1/snippets/cperl-mode/.yas-parents
copy from elpa/yasnippet-0.8.0/snippets/c++-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/csharp-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/attrib
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/attrib
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/attrib.1
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/attrib.1
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/attrib.2
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/attrib.2
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/class
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/class
--- a/elpa/yasnippet-0.8.0/snippets/csharp-mode/class
+++ b/elpa/yasnippet-0.9.1/snippets/csharp-mode/class
@@ -14,7 +14,7 @@
 
     /// <summary>
     /// ${4:Default Destructor}
-    /// </summary>    
+    /// </summary>
     public ~$1()
     {
     }
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/comment
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/comment
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/comment.1
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/comment.1
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/comment.2
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/comment.2
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/comment.3
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/comment.3
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/method
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/method
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/namespace
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/namespace
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/prop
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/prop
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/region
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/region
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/using
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/using
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/using.1
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/using.1
rename from elpa/yasnippet-0.8.0/snippets/csharp-mode/using.2
rename to elpa/yasnippet-0.9.1/snippets/csharp-mode/using.2
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/css-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/css-mode/bg
rename to elpa/yasnippet-0.9.1/snippets/css-mode/bg
rename from elpa/yasnippet-0.8.0/snippets/css-mode/bg.1
rename to elpa/yasnippet-0.9.1/snippets/css-mode/bg.1
rename from elpa/yasnippet-0.8.0/snippets/css-mode/bor
rename to elpa/yasnippet-0.9.1/snippets/css-mode/bor
rename from elpa/yasnippet-0.8.0/snippets/css-mode/cl
rename to elpa/yasnippet-0.9.1/snippets/css-mode/cl
rename from elpa/yasnippet-0.8.0/snippets/css-mode/disp.block
rename to elpa/yasnippet-0.9.1/snippets/css-mode/disp.block
rename from elpa/yasnippet-0.8.0/snippets/css-mode/disp.inline
rename to elpa/yasnippet-0.9.1/snippets/css-mode/disp.inline
rename from elpa/yasnippet-0.8.0/snippets/css-mode/disp.none
rename to elpa/yasnippet-0.9.1/snippets/css-mode/disp.none
rename from elpa/yasnippet-0.8.0/snippets/css-mode/ff
rename to elpa/yasnippet-0.9.1/snippets/css-mode/ff
rename from elpa/yasnippet-0.8.0/snippets/css-mode/fs
rename to elpa/yasnippet-0.9.1/snippets/css-mode/fs
rename from elpa/yasnippet-0.8.0/snippets/css-mode/mar.bottom
rename to elpa/yasnippet-0.9.1/snippets/css-mode/mar.bottom
rename from elpa/yasnippet-0.8.0/snippets/css-mode/mar.left
rename to elpa/yasnippet-0.9.1/snippets/css-mode/mar.left
rename from elpa/yasnippet-0.8.0/snippets/css-mode/mar.mar
rename to elpa/yasnippet-0.9.1/snippets/css-mode/mar.mar
rename from elpa/yasnippet-0.8.0/snippets/css-mode/mar.margin
rename to elpa/yasnippet-0.9.1/snippets/css-mode/mar.margin
rename from elpa/yasnippet-0.8.0/snippets/css-mode/mar.right
rename to elpa/yasnippet-0.9.1/snippets/css-mode/mar.right
rename from elpa/yasnippet-0.8.0/snippets/css-mode/mar.top
rename to elpa/yasnippet-0.9.1/snippets/css-mode/mar.top
rename from elpa/yasnippet-0.8.0/snippets/css-mode/pad.bottom
rename to elpa/yasnippet-0.9.1/snippets/css-mode/pad.bottom
rename from elpa/yasnippet-0.8.0/snippets/css-mode/pad.left
rename to elpa/yasnippet-0.9.1/snippets/css-mode/pad.left
rename from elpa/yasnippet-0.8.0/snippets/css-mode/pad.pad
rename to elpa/yasnippet-0.9.1/snippets/css-mode/pad.pad
rename from elpa/yasnippet-0.8.0/snippets/css-mode/pad.padding
rename to elpa/yasnippet-0.9.1/snippets/css-mode/pad.padding
rename from elpa/yasnippet-0.8.0/snippets/css-mode/pad.right
rename to elpa/yasnippet-0.9.1/snippets/css-mode/pad.right
rename from elpa/yasnippet-0.8.0/snippets/css-mode/pad.top
rename to elpa/yasnippet-0.9.1/snippets/css-mode/pad.top
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/.read_me
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/.read_me
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/add-hook.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/add-hook.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/and.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/and.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/append.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/append.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/apply.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/apply.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/aref.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/aref.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/aset.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/aset.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/assq.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/assq.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/autoload.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/autoload.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/backward-char.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/backward-char.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/beginning-of-line.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/beginning-of-line.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/bounds-of-thing-at-point.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/bounds-of-thing-at-point.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-file-name.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-file-name.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-modified-p.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-modified-p.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-substring-no-properties.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-substring-no-properties.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/buffer-substring.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/buffer-substring.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/car.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/car.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/cdr.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/cdr.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/concat.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/concat.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/cond.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/cond.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/condition-case.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/condition-case.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/cons.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/cons.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/consp.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/consp.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/copy-directory.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/copy-directory.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/copy-file.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/copy-file.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/current-buffer.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/current-buffer.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/custom-autoload.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/custom-autoload.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defalias.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defalias.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defcustom.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defcustom.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/define-key.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/define-key.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defsubst.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defsubst.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defun.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defun.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/defvar.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/defvar.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-char.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-char.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-directory.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-directory.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-file.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-file.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/delete-region.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/delete-region.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/directory-files.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/directory-files.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/dolist.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/dolist.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/end-of-line.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/end-of-line.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/eq.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/eq.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/equal.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/equal.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/error.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/error.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/expand-file-name.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/expand-file-name.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/format.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/f.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/fboundp.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/fboundp.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-directory.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-directory.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-extension.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-extension.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-nondirectory.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-nondirectory.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-name-sans-extension.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-name-sans-extension.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/file-relative-name.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/file-relative-name.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/find-file.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/find-file.yasnippet
copy from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/format.yasnippet
copy to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/format.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/forward-char.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/forward-char.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/forward-line.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/forward-line.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/funcall.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/funcall.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/function.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/function.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/get.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/get.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/global-set-key.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/global-set-key.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/goto-char.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/goto-char.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/if.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/if.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/insert-file-contents.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/insert-file-contents.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/insert.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/insert.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/interactive.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/interactive.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/kbd.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/kbd.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/kill-buffer.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/kill-buffer.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/lambda.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/lambda.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/length.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/length.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/let.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/let.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/line-beginning-position.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/line-beginning-position.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/line-end-position.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/line-end-position.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/list.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/list.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/looking-at.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/looking-at.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/make-directory.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/make-directory.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/make-local-variable.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/make-local-variable.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/mapc.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/mapc.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/mapcar.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/mapcar.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/match-beginning.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/match-beginning.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/match-end.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/match-end.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/match-string.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/match-string.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/memq.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/memq.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/message.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/message.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/not.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/not.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/nth.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/nth.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/null.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/null.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/number-to-string.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/number-to-string.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/or.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/or.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/point-max.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/point-max.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/point-min.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/point-min.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/point.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/point.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/princ.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/princ.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/print.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/print.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/progn.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/progn.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/push.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/push.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/put.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/put.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/re-search-backward.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/re-search-backward.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/re-search-forward.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/re-search-forward.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/region-active-p.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/region-active-p.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/region-beginning.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/region-beginning.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/region-end.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/region-end.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/rename-file.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/rename-file.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/repeat.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/repeat.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/replace-regexp-in-string.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/replace-regexp-in-string.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/replace-regexp.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/replace-regexp.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/require.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/require.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/save-buffer.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/save-buffer.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/save-excursion.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/save-excursion.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-backward-regexp.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-backward-regexp.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-backward.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-backward.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-forward-regexp.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-forward-regexp.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/search-forward.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/search-forward.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set-buffer.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set-buffer.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set-file-modes.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set-file-modes.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set-mark.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set-mark.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/set.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/set.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/setq.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/setq.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/skip-chars-backward.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/skip-chars-backward.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/skip-chars-forward.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/skip-chars-forward.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/split-string.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/split-string.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string-match.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string-match.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string-to-number.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string-to-number.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/string=.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/string=.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/stringp.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/stringp.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/substring.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/substring.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/thing-at-point.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/thing-at-point.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/unless.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/unless.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/vector.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/vector.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/when.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/when.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/while.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/while.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/widget-get.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/widget-get.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/with-current-buffer.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/with-current-buffer.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet
--- a/elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet
+++ b/elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-dired.process_marked.yasnippet
@@ -3,7 +3,7 @@
 # key: x-dired
 # --
 ;; idiom for processing a list of files in dired's marked files
- 
+
 ;; suppose myProcessFile is your function that takes a file path
 ;; and do some processing on the file
 
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-file.process.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-file.process.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet
--- a/elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet
+++ b/elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-file.read-lines.yasnippet
@@ -10,8 +10,8 @@
      (buffer-string) "\n" t)) )
 
 ;; process all lines
-(mapc 
- (lambda (aLine) 
+(mapc
+ (lambda (aLine)
    (message aLine) ; do your stuff here
    )
  (read-lines "inputFilePath")
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-find-replace.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-find-replace.yasnippet
--- a/elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-find-replace.yasnippet
+++ b/elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-find-replace.yasnippet
@@ -6,7 +6,7 @@
   "Replace “<†to “&lt;†and other chars in HTML.
 This works on the current region."
   (interactive "r")
-  (save-restriction 
+  (save-restriction
     (narrow-to-region start end)
     (goto-char (point-min))
     (while (search-forward "&" nil t) (replace-match "&amp;" nil t))
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-grabstring.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-grabstring.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-grabthing.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-grabthing.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-traverse_dir.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-traverse_dir.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/x-word-or-region.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/x-word-or-region.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/y-or-n-p.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/y-or-n-p.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/emacs-lisp-mode/yes-or-no-p.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/emacs-lisp-mode/yes-or-no-p.yasnippet
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/erlang-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/after
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/after
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/begin
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/begin
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/beh
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/beh
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/case
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/case
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/compile
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/compile
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/def
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/def
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/exp
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/exp
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/fun
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/fun
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/if
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/if
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/ifdef
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/ifdef
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/ifndef
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/ifndef
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/imp
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/imp
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/inc
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/inc
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/inc.lib
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/inc.lib
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/loop
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/loop
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/mod
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/mod
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/rcv
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/rcv
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/rcv.after
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/rcv.after
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/rec
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/rec
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/try
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/try
rename from elpa/yasnippet-0.8.0/snippets/erlang-mode/undef
rename to elpa/yasnippet-0.9.1/snippets/erlang-mode/undef
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/f90-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/au
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/au
--- a/elpa/yasnippet-0.8.0/snippets/f90-mode/au
+++ b/elpa/yasnippet-0.9.1/snippets/f90-mode/au
@@ -2,4 +2,4 @@
 # name: automatic
 # key: au
 # --
-automatic $0 
\ No newline at end of file
+automatic $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/bd
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/bd
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/c
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/c
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/ch
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/ch
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/cx
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/cx
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/dc
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/dc
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/do
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/do
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/dp
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/dp
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/eq
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/eq
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/ib
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/ib
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/ic
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/ic
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/ich
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/ich
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/if
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/if
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/f90-mode/ii
@@ -0,0 +1,5 @@
+# contributor: Li Zhu <http://www.zhuli.name>
+# name: implicit integer
+# key: ii
+# --
+implicit integer $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/il
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/il
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/in
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/in
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/inc
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/inc
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/intr
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/intr
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/ir
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/ir
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/l
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/l
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/pa
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/pa
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/pr
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/pr
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/re
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/re
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/st
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/st
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/su
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/su
rename from elpa/yasnippet-0.8.0/snippets/f90-mode/wr
rename to elpa/yasnippet-0.9.1/snippets/f90-mode/wr
new file mode 100644
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/html-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/html-mode/b.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/html-mode/b.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/html-mode/body
rename to elpa/yasnippet-0.9.1/snippets/html-mode/body
rename from elpa/yasnippet-0.8.0/snippets/html-mode/br
rename to elpa/yasnippet-0.9.1/snippets/html-mode/br
rename from elpa/yasnippet-0.8.0/snippets/html-mode/code
rename to elpa/yasnippet-0.9.1/snippets/html-mode/code
rename from elpa/yasnippet-0.8.0/snippets/html-mode/code.class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/code.class
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/html-mode/div
@@ -0,0 +1,4 @@
+# name: <div...>...</div>
+# key: div
+# --
+<div${1: id="${2:some_id}"}${3: class="${4:some_class}"}>$0</div>
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/html-mode/div.class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/div.class
rename from elpa/yasnippet-0.8.0/snippets/html-mode/div.id
rename to elpa/yasnippet-0.9.1/snippets/html-mode/div.id
rename from elpa/yasnippet-0.8.0/snippets/html-mode/div.id-class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/div.id-class
rename from elpa/yasnippet-0.8.0/snippets/html-mode/dov
rename to elpa/yasnippet-0.9.1/snippets/html-mode/dov
rename from elpa/yasnippet-0.8.0/snippets/html-mode/form
rename to elpa/yasnippet-0.9.1/snippets/html-mode/form
rename from elpa/yasnippet-0.8.0/snippets/html-mode/head
rename to elpa/yasnippet-0.9.1/snippets/html-mode/head
rename from elpa/yasnippet-0.8.0/snippets/html-mode/header/h1
rename to elpa/yasnippet-0.9.1/snippets/html-mode/header/h1
rename from elpa/yasnippet-0.8.0/snippets/html-mode/header/h2
rename to elpa/yasnippet-0.9.1/snippets/html-mode/header/h2
rename from elpa/yasnippet-0.8.0/snippets/html-mode/header/h3
rename to elpa/yasnippet-0.9.1/snippets/html-mode/header/h3
rename from elpa/yasnippet-0.8.0/snippets/html-mode/header/h4
rename to elpa/yasnippet-0.9.1/snippets/html-mode/header/h4
rename from elpa/yasnippet-0.8.0/snippets/html-mode/header/h5
rename to elpa/yasnippet-0.9.1/snippets/html-mode/header/h5
rename from elpa/yasnippet-0.8.0/snippets/html-mode/header/h6
rename to elpa/yasnippet-0.9.1/snippets/html-mode/header/h6
rename from elpa/yasnippet-0.8.0/snippets/html-mode/hr
rename to elpa/yasnippet-0.9.1/snippets/html-mode/hr
rename from elpa/yasnippet-0.8.0/snippets/html-mode/href
rename to elpa/yasnippet-0.9.1/snippets/html-mode/href
rename from elpa/yasnippet-0.8.0/snippets/html-mode/html
rename to elpa/yasnippet-0.9.1/snippets/html-mode/html
rename from elpa/yasnippet-0.8.0/snippets/html-mode/html.xmlns
rename to elpa/yasnippet-0.9.1/snippets/html-mode/html.xmlns
rename from elpa/yasnippet-0.8.0/snippets/html-mode/i.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/html-mode/i.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/html-mode/img
rename to elpa/yasnippet-0.9.1/snippets/html-mode/img
rename from elpa/yasnippet-0.8.0/snippets/html-mode/input
rename to elpa/yasnippet-0.9.1/snippets/html-mode/input
rename from elpa/yasnippet-0.8.0/snippets/html-mode/link.stylesheet
rename to elpa/yasnippet-0.9.1/snippets/html-mode/link.stylesheet
rename from elpa/yasnippet-0.8.0/snippets/html-mode/link.stylesheet-ie
rename to elpa/yasnippet-0.9.1/snippets/html-mode/link.stylesheet-ie
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/dd
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/dd
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/dl
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/dl
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/dl.id
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/dl.id
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/dt
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/dt
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/li
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/li
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/li.class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/li.class
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/ol
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/ol
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/ol.class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/ol.class
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/ol.id
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/ol.id
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/ul
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/ul
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/ul.class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/ul.class
rename from elpa/yasnippet-0.8.0/snippets/html-mode/list/ul.id
rename to elpa/yasnippet-0.9.1/snippets/html-mode/list/ul.id
rename from elpa/yasnippet-0.8.0/snippets/html-mode/mailto
rename to elpa/yasnippet-0.9.1/snippets/html-mode/mailto
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhml1
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhml1
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhtml1_1
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhtml1_1
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhtml1_strict
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhtml1_strict
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/doctype.xhtml1_transitional
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/doctype.xhtml1_transitional
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/meta
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/meta
rename from elpa/yasnippet-0.8.0/snippets/html-mode/meta/meta.http-equiv
rename to elpa/yasnippet-0.9.1/snippets/html-mode/meta/meta.http-equiv
rename from elpa/yasnippet-0.8.0/snippets/html-mode/p
rename to elpa/yasnippet-0.9.1/snippets/html-mode/p
rename from elpa/yasnippet-0.8.0/snippets/html-mode/pre
rename to elpa/yasnippet-0.9.1/snippets/html-mode/pre
rename from elpa/yasnippet-0.8.0/snippets/html-mode/q.yasnippet
rename to elpa/yasnippet-0.9.1/snippets/html-mode/q.yasnippet
rename from elpa/yasnippet-0.8.0/snippets/html-mode/quote
rename to elpa/yasnippet-0.9.1/snippets/html-mode/quote
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/html-mode/script.javascript
@@ -0,0 +1,7 @@
+# contributor: Jimmy Wu <frozenthrone88@gmail.com>
+#name :<script type="text/javascript">...</script>
+# key: script
+# --
+<script type="text/javascript">
+  $0
+</script>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/html-mode/script.javascript-src
@@ -0,0 +1,5 @@
+# contributor: Jimmy Wu <frozenthrone88@gmail.com>
+#name :<script type="text/javascript" src="..."></script>
+# key: script
+# --
+<script type="text/javascript" src="$1"></script>
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/html-mode/span
rename to elpa/yasnippet-0.9.1/snippets/html-mode/span
rename from elpa/yasnippet-0.8.0/snippets/html-mode/span.class
rename to elpa/yasnippet-0.9.1/snippets/html-mode/span.class
rename from elpa/yasnippet-0.8.0/snippets/html-mode/span.id
rename to elpa/yasnippet-0.9.1/snippets/html-mode/span.id
rename from elpa/yasnippet-0.8.0/snippets/html-mode/style
rename to elpa/yasnippet-0.9.1/snippets/html-mode/style
rename from elpa/yasnippet-0.8.0/snippets/html-mode/table/table
rename to elpa/yasnippet-0.9.1/snippets/html-mode/table/table
rename from elpa/yasnippet-0.8.0/snippets/html-mode/table/td
rename to elpa/yasnippet-0.9.1/snippets/html-mode/table/td
rename from elpa/yasnippet-0.8.0/snippets/html-mode/table/th
rename to elpa/yasnippet-0.9.1/snippets/html-mode/table/th
rename from elpa/yasnippet-0.8.0/snippets/html-mode/table/tr
rename to elpa/yasnippet-0.9.1/snippets/html-mode/table/tr
rename from elpa/yasnippet-0.8.0/snippets/html-mode/textarea
rename to elpa/yasnippet-0.9.1/snippets/html-mode/textarea
rename from elpa/yasnippet-0.8.0/snippets/html-mode/title
rename to elpa/yasnippet-0.9.1/snippets/html-mode/title
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/assert.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: assert
+# key: assert
+# --
+assert.${1:equal}($0);
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/cb.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: cb
+# key: cb
+# --
+function(error, $1){
+$0
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/com.yasnippet
@@ -0,0 +1,10 @@
+# -*- mode: snippet -*-
+# name: com
+# key: com
+# --
+
+/**
+ * $0
+ * @param {${1:String}} $2
+ * @return {${3:String}}
+ */
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/describe.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: desc
+# key: desc
+# --
+describe('$1', function(){
+$2
+});
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/err.snippet
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: err
+# key: err
+# --
+if(${1:error}){
+  callback($1);
+  return;
+}
+$2
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/error.snippet
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: error
+# key: error
+# --
+if(${1:error}){
+  callback($1);
+  return;
+}
+$2
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/expect.yasnippet
@@ -0,0 +1,6 @@
+# -*- mode: snippet -*-
+# name: expect
+# key: expect
+# --
+expect($1).to.${2:equal}($3);
+$0
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/exports.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: exports
+# key: exports
+# --
+module.exports = {
+$0
+};
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/fn.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: fn
+# key: fn
+# --
+function$1($2){
+$0
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/for.yasnippet
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: for
+# key: for
+# --
+var ${1:i} = ${2:-1}, len = $3.length;
+
+for(; ++$1 < len;){
+  $4
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/id.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: id
+# key: id
+# --
+document.getElementById('$0');
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/if.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: if
+# key: if
+# --
+if( ${1} ){
+$0
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/invoc.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: invoc
+# key: invoc
+# --
+(function($1){
+$0
+})($2);
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/it.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: it
+# key: it
+# --
+it('$1', function(done){
+$2
+});
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/log.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: log
+# key: log
+# --
+console.${1:log}( $0 );
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/method.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: method
+# key: method
+# --
+$1.prototype.$2 = function($3){
+${0}
+};
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/mod.yasnippet
@@ -0,0 +1,11 @@
+# -*- mode: snippet -*-
+# name: mod
+# key: mod
+# --
+var $1 = require("${2:$1}")$3
+
+module.exports = {
+  $4: $4$5
+};
+
+$0
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/prop.yasnippet
@@ -0,0 +1,19 @@
+# -*- mode: snippet -*-
+# name: prop
+# key: prop
+# --
+
+var $1 = (function(){
+
+  var value = undefined;
+
+  return function $1(newValue){
+
+    if( $1.arguments.length > 0 ){
+      value = newValue;
+    }
+
+    return value;
+  };
+
+})();
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/proto.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: proto
+# key: proto
+# --
+$1.prototype.$2 = $0
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/rq.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: rq
+# key: rq
+# --
+$1 = require("${2:$1}")$0
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/rt.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: rt
+# key: rt
+# --
+return$0;
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/slice.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: slice
+# key: slice
+# --
+Array.prototype.slice.${1:call}($0);
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/super.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: super
+# key: super
+# --
+$1.prototype.${2:constructor}.${3:call}($0);
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/switch.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: switch
+# key: switch
+# --
+switch($1){
+$0
+};
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/throw.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: throw
+# key: throw
+# --
+throw new Error("$1");
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/try.yasnippet
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: try
+# key: try
+# --
+try {
+  $1
+} catch(error) {
+  $0
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/var.yasnippet
@@ -0,0 +1,5 @@
+# -*- mode: snippet -*-
+# name: var
+# key: var
+# --
+var $1 = $0
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/wh.yasnippet
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: wh
+# key: wh
+# --
+while($1){
+$0
+}
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/js-mode/while.yasnippet
@@ -0,0 +1,10 @@
+# -*- mode: snippet -*-
+# name: while
+# key: while
+# --
+
+var i = $1.length;
+
+while( i -- ){
+  $0
+}
\ No newline at end of file
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/latex-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/latex-mode/begin
rename to elpa/yasnippet-0.9.1/snippets/latex-mode/begin
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/+
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/+
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/-
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/-
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/markdown-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/_
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/_
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/__
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/__
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/`
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/`
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h1.1
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h1.1
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h1.2
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h1.2
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h2.1
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h2.1
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h2.2
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h2.2
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h3
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h3
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h4
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h4
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h5
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h5
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/h6
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/h6
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/hr.1
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/hr.1
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/hr.2
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/hr.2
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/img
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/img
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/link
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/link
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/ol
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/ol
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/rimg
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/rimg
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/rlb
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/rlb
rename from elpa/yasnippet-0.8.0/snippets/markdown-mode/rlink
rename to elpa/yasnippet-0.9.1/snippets/markdown-mode/rlink
new file mode 100644
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/nxml-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/body
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/body
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/br
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/br
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/code
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/code
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/div
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/div
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/form
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/form
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/head
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/head
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h1
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h1
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h2
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h2
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h3
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h3
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h4
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h4
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h5
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h5
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/header/h6
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/header/h6
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/hr
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/hr
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/href
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/href
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/html
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/html
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/img
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/img
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/input
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/input
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/li
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/li
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/link
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/link
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/doctype
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/doctype
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/doctype.xhtml1_strict
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/doctype.xhtml1_strict
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/doctype.xhtml1_transitional
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/doctype.xhtml1_transitional
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/meta/meta
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/meta/meta
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/name
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/name
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/ol
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/ol
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/p
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/p
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/pre
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/pre
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/quote
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/quote
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/span
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/span
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/style
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/style
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/table
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/table
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/tag.1l
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/tag.1l
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/tag.2l
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/tag.2l
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/td
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/td
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/th
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/th
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/title
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/title
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/tr
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/tr
rename from elpa/yasnippet-0.8.0/snippets/nxml-mode/ul
rename to elpa/yasnippet-0.9.1/snippets/nxml-mode/ul
copy from elpa/yasnippet-0.8.0/snippets/c++-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/objc-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/objc-mode/prop
rename to elpa/yasnippet-0.9.1/snippets/objc-mode/prop
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/perl-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/eval
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/eval
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/for
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/for
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/fore
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/fore
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/if
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/if
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/ife
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/ife
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/ifee
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/ifee
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/sub
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/sub
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/unless
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/unless
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/while
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/while
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/xfore
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/xfore
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/xif
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/xif
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/xunless
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/xunless
rename from elpa/yasnippet-0.8.0/snippets/perl-mode/xwhile
rename to elpa/yasnippet-0.9.1/snippets/perl-mode/xwhile
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/python-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/python-mode/__
rename to elpa/yasnippet-0.9.1/snippets/python-mode/__
rename from elpa/yasnippet-0.8.0/snippets/python-mode/class
rename to elpa/yasnippet-0.9.1/snippets/python-mode/class
rename from elpa/yasnippet-0.8.0/snippets/python-mode/def
rename to elpa/yasnippet-0.9.1/snippets/python-mode/def
--- a/elpa/yasnippet-0.8.0/snippets/python-mode/def
+++ b/elpa/yasnippet-0.9.1/snippets/python-mode/def
@@ -7,7 +7,7 @@
 def ${1:name}($2):
     """$3
     ${2:$
-      (let* 
+      (let*
         ((indent
             (concat "\n" (make-string (current-column) 32)))
            (args
rename from elpa/yasnippet-0.8.0/snippets/python-mode/defm
rename to elpa/yasnippet-0.9.1/snippets/python-mode/defm
rename from elpa/yasnippet-0.8.0/snippets/python-mode/for
rename to elpa/yasnippet-0.9.1/snippets/python-mode/for
rename from elpa/yasnippet-0.8.0/snippets/python-mode/ifmain
rename to elpa/yasnippet-0.9.1/snippets/python-mode/ifmain
rename from elpa/yasnippet-0.8.0/snippets/python-mode/prop
rename to elpa/yasnippet-0.9.1/snippets/python-mode/prop
rename from elpa/yasnippet-0.8.0/snippets/python-mode/propg
rename to elpa/yasnippet-0.9.1/snippets/python-mode/propg
rename from elpa/yasnippet-0.8.0/snippets/python-mode/propsg
rename to elpa/yasnippet-0.9.1/snippets/python-mode/propsg
rename from elpa/yasnippet-0.8.0/snippets/python-mode/while
rename to elpa/yasnippet-0.9.1/snippets/python-mode/while
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/rst-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/rst-mode/chap
rename to elpa/yasnippet-0.9.1/snippets/rst-mode/chap
rename from elpa/yasnippet-0.8.0/snippets/rst-mode/sec
rename to elpa/yasnippet-0.9.1/snippets/rst-mode/sec
rename from elpa/yasnippet-0.8.0/snippets/rst-mode/tit
rename to elpa/yasnippet-0.9.1/snippets/rst-mode/tit
new file mode 100644
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/ruby-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/all
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/all
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/any
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/any
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/classify
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/classify
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/collect
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/collect
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/deli
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/deli
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/det
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/det
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/ea
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/ea
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eac
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eac
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eai
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eai
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eav
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eav
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/eawi
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/eawi
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/inject
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/inject
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/reject
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/reject
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/collections/select
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/select
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/ruby-mode/collections/zip
@@ -0,0 +1,4 @@
+#name : zip(...) { |...| ... }
+# key: zip
+# --
+zip(${enums}) { |${row}| $0 }
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/forin
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/forin
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/if
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/if
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/ife
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/ife
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/tim
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/tim
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/until
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/until
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/upt
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/upt
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/when
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/when
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/control structure/while
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/control structure/while
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/Comp
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/Comp
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/am
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/am
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/cla
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/cla
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/cls
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/cls
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/mm
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/mm
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/mod
@@ -0,0 +1,13 @@
+# name: module ... end
+# contributor: hitesh <hitesh.jasani@gmail.com>, jimeh <contact@jimeh.me>
+# key: mod
+# --
+module ${1:`(let ((fn (capitalize (file-name-nondirectory
+                                 (file-name-sans-extension
+         (or (buffer-file-name)
+             (buffer-name (current-buffer))))))))
+           (cond
+             ((string-match "_" fn) (replace-match "" nil nil fn))
+              (t fn)))`}
+  $0
+end
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/r
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/r
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/rw
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/rw
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/definitions/w
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/definitions/w
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/#
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/#
--- a/elpa/yasnippet-0.8.0/snippets/ruby-mode/general/#
+++ b/elpa/yasnippet-0.9.1/snippets/ruby-mode/general/#
@@ -1,4 +1,4 @@
 # name: # =>
 # key: #
 # --
-# => 
\ No newline at end of file
+# =>
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/=b
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/=b
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/app
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/app
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/bm
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/bm
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/case
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/case
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/dee
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/dee
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/rb
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/rb
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/req
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/req
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/rreq
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/rreq
rename from elpa/yasnippet-0.8.0/snippets/ruby-mode/general/y
rename to elpa/yasnippet-0.9.1/snippets/ruby-mode/general/y
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/scala-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/act
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/act
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/act.arg
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/act.arg
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/actor
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/actor
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ano
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ano
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/app
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/app
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/arr.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/arr.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/arr.val-new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/arr.val-new
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/asof
@@ -0,0 +1,5 @@
+# Author: Jonas Bonèr <jonas@jonasboner.com>
+# name: asInstanceOf[T]
+# key: asof
+# --
+asInstanceOf[${1:type}] $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ass
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ass
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ass.true
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ass.true
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/at.author
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/at.author
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/at.param
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/at.param
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/at.return
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/at.return
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/at.version
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/at.version
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/bang
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/bang
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/case
@@ -0,0 +1,5 @@
+# Author: Jonas Bonèr <jonas@jonasboner.com>
+# name: case pattern =>
+# key: case
+# --
+case ${1:pattern} => $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/case.match-all
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/case.match-all
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/case.match-all
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/case.match-all
@@ -1,5 +1,5 @@
 # Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: case _ => 
+# name: case _ =>
 # key: case
 # --
 case _ => $0
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/cast
@@ -0,0 +1,5 @@
+# Author: Jonas Bonèr <jonas@jonasboner.com>
+# name: asInstanceOf[T]
+# key: cast
+# --
+asInstanceOf[${1:type}] $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cc
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cc
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cl
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cl
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cl.abs
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cl.abs
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cl.abs-arg
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cl.abs-arg
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cl.arg
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cl.arg
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/clof
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/clof
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/clof
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/clof
@@ -1,5 +1,5 @@
 # Author: Jonas Bonèr <jonas@jonasboner.com>
-# name: classOf[T] 
+# name: classOf[T]
 # key: clof
 # --
 classOf[${1:type}] $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/co
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/co
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cons
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cons
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/cons.nil
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/cons.nil
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg-body
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg-body
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg-ret
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg-ret
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.arg-ret-body
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.arg-ret-body
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.body
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.body
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.ret
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.ret
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.ret-body
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.ret-body
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/def.simple
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/def.simple
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/doc.class
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/doc.class
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/doc.class
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/doc.class
@@ -2,8 +2,8 @@
 # name: /** cls/trt/obj name */
 # key: doc
 # --
-/** 
+/**
  * `(scala-mode-find-clstrtobj-name-doc)`
  * ${1:description}
- * $0  
+ * $0
  */
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/doc.def
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/doc.def
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/doc.def
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/doc.def
@@ -2,6 +2,6 @@
 # name: /** method name */
 # key: doc
 # --
-/** 
+/**
  * `(scala-mode-def-and-args-doc)`
- */ 
\ No newline at end of file
+ */
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file
@@ -6,5 +6,5 @@
  * `(scala-mode-file-doc)`
  * $0
  * @author ${1:name}
- * @version ${2:0.1} 
+ * @version ${2:0.1}
  */
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file-scala
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file-scala
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file-scala
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file-scala
@@ -9,9 +9,9 @@
 ** /____/\___/_/ |_/____/_/ | |                                         **
 **                          |/                                          **
 \*                                                                      */
-/** 
+/**
  * $0
- * @author ${1:name} 
+ * @author ${1:name}
  * @version ${2:0.1}
  * $Id$
  */
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file-scala-api
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file-scala-api
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/doc.file-scala-api
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/doc.file-scala-api
@@ -9,9 +9,9 @@
 ** /____/\___/_/ |_/____/_/ | |                                         **
 **                          |/                                          **
 \*                                                                      */
-/** 
+/**
  * $0
- * @author ${1:name} 
+ * @author ${1:name}
  * @version ${2:0.1}
  * $Id$
  */
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/doc.scaladoc
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/doc.scaladoc
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/expect
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/expect
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ext
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ext
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/for.extract
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/for.extract
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/for.if
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/for.if
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/for.loop
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/for.loop
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/for.multi
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/for.multi
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/foreach
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/foreach
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/hmap.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/hmap.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/hmap.val-new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/hmap.val-new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/hset.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/hset.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/hset.val-new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/hset.val-new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/if
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/if
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/if.else
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/if.else
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/imp
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/imp
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/intercept
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/intercept
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/isof
@@ -0,0 +1,5 @@
+# Author: Jonas Bonèr <jonas@jonasboner.com>
+# name: isInstanceOf[T]
+# key: isof
+# --
+isInstanceOf[${1:type}] $0
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ls.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ls.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ls.val-new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ls.val-new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/main
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/main
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/map
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/map
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/map.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/map.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/match
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/match
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/match.can
@@ -0,0 +1,12 @@
+# Author: Jonas Bonèr <jonas@jonasboner.com>
+# name: can match { case Full(res) => .. }
+# key: match
+# --
+${1:option} match {
+  case Full(res) => $0
+
+  case Empty =>
+
+  case Failure(msg, _, _) =>
+
+}
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/match.option
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/match.option
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/match.option
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/match.option
@@ -4,6 +4,6 @@
 # --
 ${1:option} match {
   case None => $0
-  case Some(res) => 
+  case Some(res) =>
 
 }
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/mix
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/mix
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/ob
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/ob
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pac
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pac
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pr.newline
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pr.newline
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pr.simple
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pr.simple
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pr.string
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pr.string
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pr.trace
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pr.trace
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pri
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pri
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pri.param
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pri.param
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pro
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pro
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/pro.param
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/pro.param
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/suite
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/suite
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/test
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/test
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/throw
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/throw
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/tr
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/tr
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/tr.ext
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/tr.ext
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/tr.ext-with
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/tr.ext-with
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/tr.with
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/tr.with
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/try
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/try
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/try
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/try
@@ -5,6 +5,6 @@
 try {
   $0
 } catch {
-  case ${1:e}: ${2:Exception} => 
+  case ${1:e}: ${2:Exception} =>
     ${1:println(\"ERROR: \" + e) // TODO: handle exception}\n}
 }
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/try.catch-finally
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/try.catch-finally
--- a/elpa/yasnippet-0.8.0/snippets/scala-mode/try.catch-finally
+++ b/elpa/yasnippet-0.9.1/snippets/scala-mode/try.catch-finally
@@ -5,7 +5,7 @@
 try {
   $0
 } catch {
-  case ${1:e}: ${2:Exception} => 
+  case ${1:e}: ${2:Exception} =>
     ${1:println(\"ERROR: \" + e) // TODO: handle exception}\n}
 } finally {
 
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/try.finally
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/try.finally
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/tup.arrow
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/tup.arrow
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/tup.paren
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/tup.paren
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/val
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/val
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/val.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/val.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/val.ret
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/val.ret
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/var
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/var
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/var.new
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/var.new
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/var.ret
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/var.ret
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/whi
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/whi
rename from elpa/yasnippet-0.8.0/snippets/scala-mode/with
rename to elpa/yasnippet-0.9.1/snippets/scala-mode/with
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/snippet-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/snippet-mode/field
rename to elpa/yasnippet-0.9.1/snippets/snippet-mode/field
rename from elpa/yasnippet-0.8.0/snippets/snippet-mode/mirror
rename to elpa/yasnippet-0.9.1/snippets/snippet-mode/mirror
rename from elpa/yasnippet-0.8.0/snippets/snippet-mode/vars
rename to elpa/yasnippet-0.9.1/snippets/snippet-mode/vars
copy from elpa/yasnippet-0.8.0/snippets/ruby-mode/.yas-parents
copy to elpa/yasnippet-0.9.1/snippets/sql-mode/.yas-parents
rename from elpa/yasnippet-0.8.0/snippets/sql-mode/column
rename to elpa/yasnippet-0.9.1/snippets/sql-mode/column
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/sql-mode/constraint
@@ -0,0 +1,5 @@
+# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
+# name: CONSTRAINT [..] PRIMARY KEY ...
+# key: constraint
+# --
+CONSTRAINT [${1:PK_Name}] PRIMARY KEY ${2:CLUSTERED} ([${3:ColumnName}])
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/sql-mode/constraint.1
@@ -0,0 +1,5 @@
+# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
+# name: CONSTRAINT [..] FOREIGN KEY ...
+# key: constraint
+# --
+CONSTRAINT [${1:FK_Name}] FOREIGN KEY ${2:CLUSTERED} ([${3:ColumnName}])
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/snippets/sql-mode/create
@@ -0,0 +1,11 @@
+# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
+# name: create table ...
+# key: create
+# --
+CREATE TABLE [${1:dbo}].[${2:TableName}]
+(
+		${3:Id}		${4:INT IDENTITY(1,1)}		${5:NOT NULL}
+$0
+	CONSTRAINT [${6:PK_}] PRIMARY KEY ${7:CLUSTERED} ([$3])
+)
+GO
\ No newline at end of file
rename from elpa/yasnippet-0.8.0/snippets/sql-mode/create.1
rename to elpa/yasnippet-0.9.1/snippets/sql-mode/create.1
--- a/elpa/yasnippet-0.8.0/snippets/sql-mode/create.1
+++ b/elpa/yasnippet-0.9.1/snippets/sql-mode/create.1
@@ -2,7 +2,7 @@
 # name: create procedure ...
 # key: create
 # --
-CREATE PROCEDURE [${1:dbo}].[${2:Name}] 
+CREATE PROCEDURE [${1:dbo}].[${2:Name}]
 (
 		$3		$4		= ${5:NULL}		${6:OUTPUT}
 )
rename from elpa/yasnippet-0.8.0/snippets/sql-mode/references
rename to elpa/yasnippet-0.9.1/snippets/sql-mode/references
rename from elpa/yasnippet-0.8.0/snippets/text-mode/email
rename to elpa/yasnippet-0.9.1/snippets/text-mode/email
rename from elpa/yasnippet-0.8.0/snippets/text-mode/time
rename to elpa/yasnippet-0.9.1/snippets/text-mode/time
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/yasnippet-autoloads.el
@@ -0,0 +1,59 @@
+;;; yasnippet-autoloads.el --- automatically extracted autoloads
+;;
+;;; Code:
+(add-to-list 'load-path (or (file-name-directory #$) (car load-path)))
+
+;;;### (autoloads nil "yasnippet" "yasnippet.el" (22294 19770 620363
+;;;;;;  497000))
+;;; Generated autoloads from yasnippet.el
+
+(autoload 'yas-minor-mode "yasnippet" "\
+Toggle YASnippet mode.
+
+When YASnippet mode is enabled, `yas-expand', normally bound to
+the TAB key, expands snippets of code depending on the major
+mode.
+
+With no argument, this command toggles the mode.
+positive prefix argument turns on the mode.
+Negative prefix argument turns off the mode.
+
+Key bindings:
+\\{yas-minor-mode-map}
+
+\(fn &optional ARG)" t nil)
+
+(defvar yas-global-mode nil "\
+Non-nil if Yas-Global mode is enabled.
+See the command `yas-global-mode' for a description of this minor mode.
+Setting this variable directly does not take effect;
+either customize it (see the info node `Easy Customization')
+or call the function `yas-global-mode'.")
+
+(custom-autoload 'yas-global-mode "yasnippet" nil)
+
+(autoload 'yas-global-mode "yasnippet" "\
+Toggle Yas minor mode in all buffers.
+With prefix ARG, enable Yas-Global mode if ARG is positive;
+otherwise, disable it.  If called from Lisp, enable the mode if
+ARG is omitted or nil.
+
+Yas minor mode is enabled in all buffers where
+`yas-minor-mode-on' would do it.
+See `yas-minor-mode' for more information on Yas minor mode.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+
+;;;### (autoloads nil nil ("yasnippet-debug.el" "yasnippet-pkg.el"
+;;;;;;  "yasnippet-tests.el") (22294 19775 412426 974000))
+
+;;;***
+
+;; Local Variables:
+;; version-control: never
+;; no-byte-compile: t
+;; no-update-autoloads: t
+;; End:
+;;; yasnippet-autoloads.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/yasnippet-debug.el
@@ -0,0 +1,133 @@
+;;; yasnippet-debug.el --- debug functions for yasnippet
+
+;; Copyright (C) 2010, 2013, 2014  Free Software Foundation, Inc.
+
+;; Author: João Távora
+;; Keywords: emulations, convenience
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Just some debug functions
+
+;;; Code:
+
+(require 'yasnippet)
+(require 'cl)
+
+(defun yas-debug-snippet-vars ()
+  "Debug snippets, fields, mirrors and the `buffer-undo-list'."
+  (interactive)
+  (with-output-to-temp-buffer "*YASnippet trace*"
+    (princ "Interesting YASnippet vars: \n\n")
+
+    (princ (format "\nPost command hook: %s\n" post-command-hook))
+    (princ (format "\nPre  command hook: %s\n" pre-command-hook))
+
+    (princ (format "%s live snippets in total\n" (length (yas--snippets-at-point (quote all-snippets)))))
+    (princ (format "%s overlays in buffer:\n\n" (length (overlays-in (point-min) (point-max)))))
+    (princ (format "%s live snippets at point:\n\n" (length (yas--snippets-at-point))))
+
+
+    (dolist (snippet (yas--snippets-at-point))
+      (princ (format "\tsid: %d control overlay from %d to %d\n"
+                     (yas--snippet-id snippet)
+                     (overlay-start (yas--snippet-control-overlay snippet))
+                     (overlay-end (yas--snippet-control-overlay snippet))))
+      (princ (format "\tactive field: %s from %s to %s covering \"%s\"\n"
+                     (yas--field-number (yas--snippet-active-field snippet))
+                     (marker-position (yas--field-start (yas--snippet-active-field snippet)))
+                     (marker-position (yas--field-end (yas--snippet-active-field snippet)))
+                     (buffer-substring-no-properties (yas--field-start (yas--snippet-active-field snippet)) (yas--field-end (yas--snippet-active-field snippet)))))
+      (when (yas--snippet-exit snippet)
+        (princ (format "\tsnippet-exit: at %s next: %s\n"
+                       (yas--exit-marker (yas--snippet-exit snippet))
+                       (yas--exit-next (yas--snippet-exit snippet)))))
+      (dolist (field (yas--snippet-fields snippet))
+        (princ (format "\tfield: %s from %s to %s covering \"%s\" next: %s%s\n"
+                       (yas--field-number field)
+                       (marker-position (yas--field-start field))
+                       (marker-position (yas--field-end field))
+                       (buffer-substring-no-properties (yas--field-start field) (yas--field-end field))
+                       (yas--debug-format-fom-concise (yas--field-next field))
+                       (if (yas--field-parent-field field) "(has a parent)" "")))
+        (dolist (mirror (yas--field-mirrors field))
+          (princ (format "\t\tmirror: from %s to %s covering \"%s\" next: %s\n"
+                         (marker-position (yas--mirror-start mirror))
+                         (marker-position (yas--mirror-end mirror))
+                         (buffer-substring-no-properties (yas--mirror-start mirror) (yas--mirror-end mirror))
+                         (yas--debug-format-fom-concise (yas--mirror-next mirror)))))))
+
+    (princ (format "\nUndo is %s and point-max is %s.\n"
+                   (if (eq buffer-undo-list t)
+                       "DISABLED"
+                     "ENABLED")
+                   (point-max)))
+    (unless (eq buffer-undo-list t)
+      (princ (format "Undpolist has %s elements. First 10 elements follow:\n" (length buffer-undo-list)))
+      (let ((first-ten (subseq buffer-undo-list 0 (min 19
+                                                       (length buffer-undo-list)))))
+        (dolist (undo-elem first-ten)
+          (princ (format "%2s:  %s\n" (position undo-elem first-ten) (truncate-string-to-width (format "%s" undo-elem) 70))))))))
+
+(defun yas--debug-format-fom-concise (fom)
+  (when fom
+    (cond ((yas--field-p fom)
+           (format "field %s from %d to %d"
+                   (yas--field-number fom)
+                   (marker-position (yas--field-start fom))
+                   (marker-position (yas--field-end fom))))
+          ((yas--mirror-p fom)
+           (format "mirror from %d to %d"
+                   (marker-position (yas--mirror-start fom))
+                   (marker-position (yas--mirror-end fom))))
+          (t
+           (format "snippet exit at %d"
+                   (marker-position (yas--fom-start fom)))))))
+
+
+(defun yas-exterminate-package ()
+  (interactive)
+  (yas-global-mode -1)
+  (yas-minor-mode -1)
+  (mapatoms #'(lambda (atom)
+                (when (string-match "yas[-/]" (symbol-name atom))
+                  (unintern atom obarray)))))
+
+(defun yas-debug-test (&optional quiet)
+  (interactive "P")
+  (yas-load-directory (or (and (listp yas-snippet-dirs)
+                               (first yas-snippet-dirs))
+                          yas-snippet-dirs
+                          "~/Source/yasnippet/snippets/"))
+  (set-buffer (switch-to-buffer "*YAS TEST*"))
+  (mapc #'yas--commit-snippet (yas--snippets-at-point 'all-snippets))
+  (erase-buffer)
+  (setq buffer-undo-list nil)
+  (setq undo-in-progress nil)
+  (snippet-mode)
+  (yas-minor-mode 1)
+  (let ((abbrev))
+    (setq abbrev "$f")
+    (insert abbrev))
+  (unless quiet
+    (add-hook 'post-command-hook 'yas-debug-snippet-vars 't 'local)))
+
+(provide 'yasnippet-debug)
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; byte-compile-warnings: (not cl-functions)
+;; End:
+;;; yasnippet-debug.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/yasnippet-pkg.el
@@ -0,0 +1,2 @@
+;; Generated package description from yasnippet.el
+(define-package "yasnippet" "0.9.1" "Yet another snippet extension for Emacs." 'nil :url "http://github.com/capitaomorte/yasnippet" :keywords '("convenience" "emulation"))
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/yasnippet-tests.el
@@ -0,0 +1,949 @@
+;;; yasnippet-tests.el --- some yasnippet tests  -*- lexical-binding: t -*-
+
+;; Copyright (C) 2012, 2013, 2014, 2015  Free Software Foundation, Inc.
+
+;; Author: João Távora <joaot@siscog.pt>
+;; Keywords: emulations, convenience
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Test basic snippet mechanics and the loading system
+
+;;; Code:
+
+(require 'yasnippet)
+(require 'ert)
+(require 'ert-x)
+(require 'cl)
+
+
+;;; Snippet mechanics
+
+(defun yas--buffer-contents ()
+  (buffer-substring-no-properties (point-min) (point-max)))
+
+(ert-deftest field-navigation ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "${1:brother} from another ${2:mother}")
+    (should (string= (yas--buffer-contents)
+                     "brother from another mother"))
+
+    (should (looking-at "brother"))
+    (ert-simulate-command '(yas-next-field-or-maybe-expand))
+    (should (looking-at "mother"))
+    (ert-simulate-command '(yas-prev-field))
+    (should (looking-at "brother"))))
+
+(ert-deftest simple-mirror ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "${1:brother} from another $1")
+    (should (string= (yas--buffer-contents)
+                     "brother from another brother"))
+    (yas-mock-insert "bla")
+    (should (string= (yas--buffer-contents)
+                     "bla from another bla"))))
+
+(ert-deftest mirror-with-transformation ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "${1:brother} from another ${1:$(upcase yas-text)}")
+    (should (string= (yas--buffer-contents)
+                     "brother from another BROTHER"))
+    (yas-mock-insert "bla")
+    (should (string= (yas--buffer-contents)
+                     "bla from another BLA"))))
+
+(ert-deftest primary-field-transformation ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (let ((snippet "${1:$$(upcase yas-text)}${1:$(concat \"bar\" yas-text)}"))
+      (yas-expand-snippet snippet)
+      (should (string= (yas--buffer-contents) "bar"))
+      (yas-mock-insert "foo")
+      (should (string= (yas--buffer-contents) "FOObarFOO")))))
+
+(ert-deftest nested-placeholders-kill-superfield ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "brother from ${2:another ${3:mother}}!")
+    (should (string= (yas--buffer-contents)
+                     "brother from another mother!"))
+    (yas-mock-insert "bla")
+    (should (string= (yas--buffer-contents)
+                     "brother from bla!"))))
+
+(ert-deftest nested-placeholders-use-subfield ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "brother from ${2:another ${3:mother}}!")
+    (ert-simulate-command '(yas-next-field-or-maybe-expand))
+    (yas-mock-insert "bla")
+    (should (string= (yas--buffer-contents)
+                     "brother from another bla!"))))
+
+(ert-deftest mirrors-adjacent-to-fields-with-nested-mirrors ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "<%= f.submit \"${1:Submit}\"${2:$(and (yas-text) \", :disable_with => '\")}${2:$1ing...}${2:$(and (yas-text) \"'\")} %>")
+    (should (string= (yas--buffer-contents)
+                     "<%= f.submit \"Submit\", :disable_with => 'Submiting...' %>"))
+    (yas-mock-insert "Send")
+    (should (string= (yas--buffer-contents)
+                     "<%= f.submit \"Send\", :disable_with => 'Sending...' %>"))))
+
+(ert-deftest deep-nested-mirroring-issue-351 ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "${1:FOOOOOOO}${2:$1}${3:$2}${4:$3}")
+    (yas-mock-insert "abc")
+    (should (string= (yas--buffer-contents) "abcabcabcabc"))))
+
+(ert-deftest delete-numberless-inner-snippet-issue-562 ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "${3:${test}bla}$0${2:ble}")
+    (ert-simulate-command '(yas-next-field-or-maybe-expand))
+    (should (looking-at "testblable"))
+    (ert-simulate-command '(yas-next-field-or-maybe-expand))
+    (ert-simulate-command '(yas-skip-and-clear-or-delete-char))
+    (should (looking-at "ble"))
+    (should (null (yas--snippets-at-point)))))
+
+(ert-deftest ignore-trailing-whitespace ()
+  (should (equal
+           (with-temp-buffer
+             (insert "# key: foo\n# --\nfoo")
+             (yas--parse-template))
+           (with-temp-buffer
+             (insert "# key: foo \n# --\nfoo")
+             (yas--parse-template)))))
+
+;; (ert-deftest in-snippet-undo ()
+;;   (with-temp-buffer
+;;     (yas-minor-mode 1)
+;;     (yas-expand-snippet "brother from ${2:another ${3:mother}}!")
+;;     (ert-simulate-command '(yas-next-field-or-maybe-expand))
+;;     (yas-mock-insert "bla")
+;;     (ert-simulate-command '(undo))
+;;     (should (string= (yas--buffer-contents)
+;;                      "brother from another mother!"))))
+
+(ert-deftest dont-clear-on-partial-deletion-issue-515 ()
+  "Ensure fields are not cleared when user doesn't really mean to."
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "my ${1:kid brother} from another ${2:mother}")
+
+    (ert-simulate-command '(kill-word 1))
+    (ert-simulate-command '(delete-char 1))
+
+    (should (string= (yas--buffer-contents)
+                     "my brother from another mother"))
+    (should (looking-at "brother"))
+
+    (ert-simulate-command '(yas-next-field))
+    (should (looking-at "mother"))
+    (ert-simulate-command '(yas-prev-field))
+    (should (looking-at "brother"))))
+
+(ert-deftest do-clear-on-yank-issue-515 ()
+  "A yank should clear an unmodified field."
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "my ${1:kid brother} from another ${2:mother}")
+    (yas-mock-yank "little sibling")
+    (should (string= (yas--buffer-contents)
+                     "my little sibling from another mother"))
+    (ert-simulate-command '(yas-next-field))
+    (ert-simulate-command '(yas-prev-field))
+    (should (looking-at "little sibling"))))
+
+
+;;; Snippet expansion and character escaping
+;;; Thanks to @zw963 (Billy) for the testing
+;;;
+(ert-deftest escape-dollar ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "bla\\${1:bla}ble")
+    (should (string= (yas--buffer-contents) "bla${1:bla}ble"))))
+
+(ert-deftest escape-closing-brace ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "bla${1:bla\\}}ble")
+    (should (string= (yas--buffer-contents) "blabla}ble"))
+    (should (string= (yas-field-value 1) "bla}"))))
+
+(ert-deftest escape-backslashes ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "bla\\ble")
+    (should (string= (yas--buffer-contents) "bla\\ble"))))
+
+(ert-deftest escape-backquotes ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "bla`(upcase \"foo\\`bar\")`ble")
+    (should (string= (yas--buffer-contents) "blaFOO`BARble"))))
+
+(ert-deftest escape-some-elisp-with-strings ()
+  "elisp with strings and unbalance parens inside it"
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    ;; The rules here is: to output a literal `"' you need to escape
+    ;; it with one backslash. You don't need to escape them in
+    ;; embedded elisp.
+    (yas-expand-snippet "soon \\\"`(concat (upcase \"(my arms\")\"\\\" were all around her\")`")
+    (should (string= (yas--buffer-contents) "soon \"(MY ARMS\" were all around her"))))
+
+(ert-deftest escape-some-elisp-with-backslashes ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    ;; And the rule here is: to output a literal `\' inside a string
+    ;; inside embedded elisp you need a total of six `\'
+    (yas-expand-snippet "bla`(upcase \"hey\\\\\\yo\")`ble")
+    (should (string= (yas--buffer-contents) "blaHEY\\YOble"))))
+
+(ert-deftest be-careful-when-escaping-in-yas-selected-text ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (let ((yas-selected-text "He\\\\o world!"))
+      (yas-expand-snippet "Look ma! `(yas-selected-text)`")
+      (should (string= (yas--buffer-contents) "Look ma! He\\\\o world!")))
+    (yas-exit-all-snippets)
+    (erase-buffer)
+    (let ((yas-selected-text "He\"o world!"))
+      (yas-expand-snippet "Look ma! `(yas-selected-text)`")
+      (should (string= (yas--buffer-contents) "Look ma! He\"o world!")))
+    (yas-exit-all-snippets)
+    (erase-buffer)
+    (let ((yas-selected-text "He\"\)\\o world!"))
+      (yas-expand-snippet "Look ma! `(yas-selected-text)`")
+      (should (string= (yas--buffer-contents) "Look ma! He\"\)\\o world!")))
+    (yas-exit-all-snippets)
+    (erase-buffer)))
+
+(ert-deftest be-careful-when-escaping-in-yas-selected-text-2 ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (let ((yas-selected-text "He)}o world!"))
+      (yas-expand-snippet "Look ma! ${1:`(yas-selected-text)`} OK?")
+      (should (string= (yas--buffer-contents) "Look ma! He)}o world! OK?")))))
+
+(ert-deftest example-for-issue-271 ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (let ((yas-selected-text "aaa")
+          (snippet "if ${1:condition}\n`yas-selected-text`\nelse\n$3\nend"))
+      (yas-expand-snippet snippet)
+      (yas-next-field)
+      (yas-mock-insert "bbb")
+      (should (string= (yas--buffer-contents) "if condition\naaa\nelse\nbbb\nend")))))
+
+(defmacro yas--with-font-locked-temp-buffer (&rest body)
+  "Like `with-temp-buffer', but ensure `font-lock-mode'."
+  (declare (indent 0) (debug t))
+  (let ((temp-buffer (make-symbol "temp-buffer")))
+    ;; NOTE: buffer name must not start with a space, otherwise
+    ;; `font-lock-mode' doesn't turn on.
+    `(let ((,temp-buffer (generate-new-buffer "*yas-temp*")))
+       (with-current-buffer ,temp-buffer
+         ;; pretend we're interactive so `font-lock-mode' turns on
+         (let ((noninteractive nil)
+               ;; turn on font locking after major mode change
+               (change-major-mode-after-body-hook #'font-lock-mode))
+           (unwind-protect
+               (progn (require 'font-lock)
+                      ;; turn on font locking before major mode change
+                      (font-lock-mode +1)
+                      ,@body)
+             (and (buffer-name ,temp-buffer)
+                  (kill-buffer ,temp-buffer))))))))
+
+(defmacro yas-saving-variables (&rest body)
+  `(yas-call-with-saving-variables #'(lambda () ,@body)))
+
+(defmacro yas-with-snippet-dirs (dirs &rest body)
+  (declare (indent defun))
+  `(yas-call-with-snippet-dirs ,dirs
+                               #'(lambda ()
+                                   ,@body)))
+
+(ert-deftest example-for-issue-474 ()
+  (yas--with-font-locked-temp-buffer
+    (c-mode)
+    (yas-minor-mode 1)
+    (insert "#include <foo>\n")
+    (let ((yas-good-grace nil)) (yas-expand-snippet "`\"TODO: \"`"))
+    (should (string= (yas--buffer-contents) "#include <foo>\nTODO: "))))
+
+(ert-deftest example-for-issue-404 ()
+  (yas--with-font-locked-temp-buffer
+    (c++-mode)
+    (yas-minor-mode 1)
+    (insert "#include <foo>\n")
+    (let ((yas-good-grace nil)) (yas-expand-snippet "main"))
+    (should (string= (yas--buffer-contents) "#include <foo>\nmain"))))
+
+(ert-deftest example-for-issue-404-c-mode ()
+  (yas--with-font-locked-temp-buffer
+    (c-mode)
+    (yas-minor-mode 1)
+    (insert "#include <foo>\n")
+    (let ((yas-good-grace nil)) (yas-expand-snippet "main"))
+    (should (string= (yas--buffer-contents) "#include <foo>\nmain"))))
+
+(ert-deftest middle-of-buffer-snippet-insertion ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (insert "beginning")
+    (save-excursion (insert "end"))
+    (yas-expand-snippet "-middle-")
+    (should (string= (yas--buffer-contents) "beginning-middle-end"))))
+
+(ert-deftest another-example-for-issue-271 ()
+  ;; expect this to fail in batch mode since `region-active-p' doesn't
+  ;; used by `yas-expand-snippet' doesn't make sense in that context.
+  ;;
+  :expected-result (if noninteractive
+                       :failed
+                     :passed)
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (let ((snippet "\\${${1:1}:`yas-selected-text`}"))
+      (insert "aaabbbccc")
+      (set-mark 4)
+      (goto-char 7)
+      (yas-expand-snippet snippet)
+      (should (string= (yas--buffer-contents) "aaa${1:bbb}ccc")))))
+
+(ert-deftest string-match-with-subregexp-in-embedded-elisp ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    ;; the rule here is: To use regexps in embedded `(elisp)` expressions, write
+    ;; it like you would normal elisp, i.e. no need to escape the backslashes.
+    (let ((snippet "`(if (string-match \"foo\\\\(ba+r\\\\)foo\" \"foobaaaaaaaaaarfoo\")
+                         \"ok\"
+                         \"fail\")`"))
+      (yas-expand-snippet snippet))
+    (should (string= (yas--buffer-contents) "ok"))))
+
+(ert-deftest string-match-with-subregexp-in-mirror-transformations ()
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    ;; the rule here is: To use regexps in embedded `(elisp)` expressions,
+    ;; escape backslashes once, i.e. to use \\( \\) constructs, write \\\\( \\\\).
+    (let ((snippet "$1${1:$(if (string-match \"foo\\\\\\\\(ba+r\\\\\\\\)baz\" yas-text)
+                                \"ok\"
+                                \"fail\")}"))
+      (yas-expand-snippet snippet)
+      (should (string= (yas--buffer-contents) "fail"))
+      (yas-mock-insert "foobaaar")
+      (should (string= (yas--buffer-contents) "foobaaarfail"))
+      (yas-mock-insert "baz")
+      (should (string= (yas--buffer-contents) "foobaaarbazok")))))
+
+
+;;; Misc tests
+;;;
+(ert-deftest protection-overlay-no-cheating ()
+  "Protection overlays at the very end of the buffer are dealt
+  with by cheatingly inserting a newline!
+
+TODO: correct this bug!"
+  :expected-result :failed
+  (with-temp-buffer
+    (yas-minor-mode 1)
+    (yas-expand-snippet "${2:brother} from another ${1:mother}")
+    (should (string= (yas--buffer-contents)
+                     "brother from another mother") ;; no newline should be here!
+            )))
+
+(defvar yas--barbaz)
+(defvar yas--foobarbaz)
+
+;; See issue #497. To understand this test, follow the example of the
+;; `yas-key-syntaxes' docstring.
+;;
+(ert-deftest complicated-yas-key-syntaxes ()
+  (with-temp-buffer
+    (yas-saving-variables
+     (yas-with-snippet-dirs
+       '((".emacs.d/snippets"
+          ("emacs-lisp-mode"
+           ("foo-barbaz" . "# condition: yas--foobarbaz\n# --\nOKfoo-barbazOK")
+           ("barbaz" . "# condition: yas--barbaz\n# --\nOKbarbazOK")
+           ("baz" . "OKbazOK")
+           ("'quote" . "OKquoteOK"))))
+       (yas-reload-all)
+       (emacs-lisp-mode)
+       (yas-minor-mode-on)
+       (let ((yas-key-syntaxes '("w" "w_")))
+         (let ((yas--barbaz t))
+           (yas-should-expand '(("foo-barbaz" . "foo-OKbarbazOK")
+                                ("barbaz" . "OKbarbazOK"))))
+         (let ((yas--foobarbaz t))
+           (yas-should-expand '(("foo-barbaz" . "OKfoo-barbazOK"))))
+         (let ((yas-key-syntaxes
+                (cons #'(lambda (_start-point)
+                          (unless (looking-back "-")
+                            (backward-char)
+                            'again))
+                      yas-key-syntaxes))
+               (yas--foobarbaz t))
+           (yas-should-expand '(("foo-barbaz" . "foo-barOKbazOK")))))
+       (let ((yas-key-syntaxes '(yas-try-key-from-whitespace)))
+         (yas-should-expand '(("xxx\n'quote" . "xxx\nOKquoteOK")
+                              ("xxx 'quote" . "xxx OKquoteOK"))))
+       (let ((yas-key-syntaxes '(yas-shortest-key-until-whitespace))
+             (yas--foobarbaz t) (yas--barbaz t))
+         (yas-should-expand '(("foo-barbaz" . "foo-barOKbazOK")))
+         (setq yas-key-syntaxes '(yas-longest-key-from-whitespace))
+         (yas-should-expand '(("foo-barbaz" . "OKfoo-barbazOK")
+                              ("foo " . "foo "))))))))
+
+
+;;; Loading
+;;;
+(defun yas--call-with-temporary-redefinitions (function
+                                               &rest function-names-and-overriding-functions)
+  (let* ((overrides (remove-if-not #'(lambda (fdef)
+                                       (fboundp (first fdef)))
+                                   function-names-and-overriding-functions))
+         (definition-names (mapcar #'first overrides))
+         (overriding-functions (mapcar #'second overrides))
+         (saved-functions (mapcar #'symbol-function definition-names)))
+    ;; saving all definitions before overriding anything ensures FDEFINITION
+    ;; errors don't cause accidental permanent redefinitions.
+    ;;
+    (cl-labels ((set-fdefinitions (names functions)
+                                  (loop for name in names
+                                        for fn in functions
+                                        do (fset name fn))))
+      (set-fdefinitions definition-names overriding-functions)
+      (unwind-protect (funcall function)
+	(set-fdefinitions definition-names saved-functions)))))
+
+(defmacro yas--with-temporary-redefinitions (fdefinitions &rest body)
+  ;; "Temporarily (but globally) redefine each function in FDEFINITIONS.
+  ;; E.g.: (yas--with-temporary-redefinitions ((foo (x) ...)
+  ;;                                           (bar (x) ...))
+  ;;         ;; code that eventually calls foo, bar of (setf foo)
+  ;;         ...)"
+  ;; FIXME: This is hideous!  Better use defadvice (or at least letf).
+  `(yas--call-with-temporary-redefinitions
+    (lambda () ,@body)
+    ,@(mapcar #'(lambda (thingy)
+                  `(list ',(first thingy)
+                         (lambda ,@(rest thingy))))
+              fdefinitions)))
+
+(defmacro yas-with-overriden-buffer-list (&rest body)
+  (let ((saved-sym (make-symbol "yas--buffer-list")))
+    `(let ((,saved-sym (symbol-function 'buffer-list)))
+       (yas--with-temporary-redefinitions
+           ((buffer-list ()
+                         (remove-if #'(lambda (buf)
+                                        (with-current-buffer buf
+                                          (eq major-mode 'lisp-interaction-mode)))
+                                    (funcall ,saved-sym))))
+         ,@body))))
+
+
+(defmacro yas-with-some-interesting-snippet-dirs (&rest body)
+  `(yas-saving-variables
+    (yas-with-overriden-buffer-list
+     (yas-with-snippet-dirs
+       '((".emacs.d/snippets"
+          ("c-mode"
+           (".yas-parents" . "cc-mode")
+           ("printf" . "printf($1);"))  ;; notice the overriding for issue #281
+          ("emacs-lisp-mode" ("ert-deftest" . "(ert-deftest ${1:name} () $0)"))
+          ("lisp-interaction-mode" (".yas-parents" . "emacs-lisp-mode")))
+         ("library/snippets"
+          ("c-mode"
+           (".yas-parents" . "c++-mode")
+           ("printf" . "printf"))
+          ("cc-mode" ("def" . "# define"))
+          ("emacs-lisp-mode" ("dolist" . "(dolist)"))
+          ("lisp-interaction-mode" ("sc" . "brother from another mother"))))
+       ,@body))))
+
+(ert-deftest snippet-lookup ()
+  "Test `yas-lookup-snippet'."
+  (yas-with-some-interesting-snippet-dirs
+   (yas-reload-all 'no-jit)
+   (should (equal (yas-lookup-snippet "printf" 'c-mode) "printf($1);"))
+   (should (equal (yas-lookup-snippet "def" 'c-mode) "# define"))
+   (should-not (yas-lookup-snippet "no such snippet" nil 'noerror))
+   (should-not (yas-lookup-snippet "printf" 'emacs-lisp-mode 'noerror))))
+
+(ert-deftest basic-jit-loading ()
+  "Test basic loading and expansion of snippets"
+  (yas-with-some-interesting-snippet-dirs
+   (yas-reload-all)
+   (yas--basic-jit-loading-1)))
+
+(ert-deftest basic-jit-loading-with-compiled-snippets ()
+  "Test basic loading and expansion of compiled snippets"
+  (yas-with-some-interesting-snippet-dirs
+   (yas-reload-all)
+   (yas-recompile-all)
+   (yas--with-temporary-redefinitions ((yas--load-directory-2
+                                        (&rest _dummies)
+                                        (ert-fail "yas--load-directory-2 shouldn't be called when snippets have been compiled")))
+     (yas-reload-all)
+     (yas--basic-jit-loading-1))))
+
+(ert-deftest visiting-compiled-snippets ()
+  "Test snippet visiting for compiled snippets."
+  (yas-with-some-interesting-snippet-dirs
+   (yas-recompile-all)
+   (yas-reload-all 'no-jit) ; must be loaded for `yas-lookup-snippet' to work.
+   (yas--with-temporary-redefinitions ((find-file-noselect
+                                        (filename &rest _)
+                                        (throw 'yas-snippet-file filename)))
+     (should (string-suffix-p
+              "cc-mode/def"
+              (catch 'yas-snippet-file
+                (yas--visit-snippet-file-1
+                 (yas--lookup-snippet-1 "def" 'cc-mode))))))))
+
+(ert-deftest loading-with-cyclic-parenthood ()
+  "Test loading when cyclic parenthood is setup."
+  (yas-saving-variables
+   (yas-with-snippet-dirs '((".emacs.d/snippets"
+                             ("c-mode"
+                              (".yas-parents" . "cc-mode"))
+                             ("cc-mode"
+                              (".yas-parents" . "yet-another-c-mode and-that-one"))
+                             ("yet-another-c-mode"
+                              (".yas-parents" . "c-mode and-also-this-one lisp-interaction-mode"))))
+     (yas-reload-all)
+     (with-temp-buffer
+       (let* ((major-mode 'c-mode)
+              (expected `(c-mode
+                          cc-mode
+                          yet-another-c-mode
+                          and-also-this-one
+                          and-that-one
+                          ;; prog-mode doesn't exist in emacs 24.3
+                          ,@(if (fboundp 'prog-mode)
+                                '(prog-mode))
+                          emacs-lisp-mode
+                          lisp-interaction-mode))
+              (observed (yas--modes-to-activate)))
+         (should (equal major-mode (car observed)))
+         (should (equal (sort expected #'string<) (sort observed #'string<))))))))
+
+(ert-deftest extra-modes-parenthood ()
+  "Test activation of parents of `yas--extra-modes'."
+  (yas-saving-variables
+   (yas-with-snippet-dirs '((".emacs.d/snippets"
+                             ("c-mode"
+                              (".yas-parents" . "cc-mode"))
+                             ("yet-another-c-mode"
+                              (".yas-parents" . "c-mode and-also-this-one lisp-interaction-mode"))))
+     (yas-reload-all)
+     (with-temp-buffer
+       (yas-activate-extra-mode 'c-mode)
+       (yas-activate-extra-mode 'yet-another-c-mode)
+       (yas-activate-extra-mode 'and-that-one)
+       (let* ((expected-first `(and-that-one
+                                yet-another-c-mode
+                                c-mode
+                                ,major-mode))
+              (expected-rest `(cc-mode
+                               ;; prog-mode doesn't exist in emacs 24.3
+                               ,@(if (fboundp 'prog-mode)
+                                     '(prog-mode))
+                               emacs-lisp-mode
+                               and-also-this-one
+                               lisp-interaction-mode))
+              (observed (yas--modes-to-activate)))
+         (should (equal expected-first
+                        (cl-subseq observed 0 (length expected-first))))
+         (should (equal (sort expected-rest #'string<)
+                        (sort (cl-subseq observed (length expected-first)) #'string<))))))))
+
+(defalias 'yas--phony-c-mode 'c-mode)
+
+(ert-deftest issue-492-and-494 ()
+  (define-derived-mode yas--test-mode yas--phony-c-mode "Just a test mode")
+  (yas-with-snippet-dirs '((".emacs.d/snippets"
+                            ("yas--test-mode")))
+                         (yas-reload-all)
+                         (with-temp-buffer
+                           (let* ((major-mode 'yas--test-mode)
+                                  (expected `(c-mode
+                                              ,@(if (fboundp 'prog-mode)
+                                                    '(prog-mode))
+                                              yas--phony-c-mode
+                                              yas--test-mode))
+                                  (observed (yas--modes-to-activate)))
+                             (should (null (cl-set-exclusive-or expected observed)))
+                             (should (= (length expected)
+                                        (length observed)))))))
+
+(define-derived-mode yas--test-mode c-mode "Just a test mode")
+(define-derived-mode yas--another-test-mode c-mode "Another test mode")
+
+(ert-deftest issue-504-tricky-jit ()
+  (yas-with-snippet-dirs
+   '((".emacs.d/snippets"
+      ("yas--another-test-mode"
+       (".yas-parents" . "yas--test-mode"))
+      ("yas--test-mode")))
+   (let ((b (with-current-buffer (generate-new-buffer "*yas-test*")
+              (yas--another-test-mode)
+              (current-buffer))))
+     (unwind-protect
+         (progn
+           (yas-reload-all)
+           (should (= 0 (hash-table-count yas--scheduled-jit-loads))))
+       (kill-buffer b)))))
+
+(defun yas--basic-jit-loading-1 ()
+  (with-temp-buffer
+    (should (= 4 (hash-table-count yas--scheduled-jit-loads)))
+    (should (= 0 (hash-table-count yas--tables)))
+    (lisp-interaction-mode)
+    (yas-minor-mode 1)
+    (should (= 2 (hash-table-count yas--scheduled-jit-loads)))
+    (should (= 2 (hash-table-count yas--tables)))
+    (should (= 1 (hash-table-count (yas--table-uuidhash (gethash 'lisp-interaction-mode yas--tables)))))
+    (should (= 2 (hash-table-count (yas--table-uuidhash (gethash 'emacs-lisp-mode yas--tables)))))
+    (yas-should-expand '(("sc" . "brother from another mother")
+                         ("dolist" . "(dolist)")
+                         ("ert-deftest" . "(ert-deftest name () )")))
+    (c-mode)
+    (yas-minor-mode 1)
+    (should (= 0 (hash-table-count yas--scheduled-jit-loads)))
+    (should (= 4 (hash-table-count yas--tables)))
+    (should (= 1 (hash-table-count (yas--table-uuidhash (gethash 'c-mode yas--tables)))))
+    (should (= 1 (hash-table-count (yas--table-uuidhash (gethash 'cc-mode yas--tables)))))
+    (yas-should-expand '(("printf" . "printf();")
+                         ("def" . "# define")))
+    (yas-should-not-expand '("sc" "dolist" "ert-deftest"))))
+
+
+;;; Menu
+;;;
+(defmacro yas-with-even-more-interesting-snippet-dirs (&rest body)
+  `(yas-saving-variables
+    (yas-with-snippet-dirs
+      `((".emacs.d/snippets"
+         ("c-mode"
+          (".yas-make-groups" . "")
+          ("printf" . "printf($1);")
+          ("foo-group-a"
+           ("fnprintf" . "fprintf($1);")
+           ("snprintf" . "snprintf($1);"))
+          ("foo-group-b"
+           ("strcmp" . "strecmp($1);")
+           ("strcasecmp" . "strcasecmp($1);")))
+         ("lisp-interaction-mode"
+          ("ert-deftest" . "# group: barbar\n# --\n(ert-deftest ${1:name} () $0)"))
+         ("fancy-mode"
+          ("a-guy" . "# uuid: 999\n# --\nyo!")
+          ("a-sir" . "# uuid: 12345\n# --\nindeed!")
+          ("a-lady" . "# uuid: 54321\n# --\noh-la-la!")
+          ("a-beggar" . "# uuid: 0101\n# --\narrrgh!")
+          ("an-outcast" . "# uuid: 666\n# --\narrrgh!")
+          (".yas-setup.el" . , (pp-to-string
+                                '(yas-define-menu 'fancy-mode
+                                                  '((yas-ignore-item "0101")
+                                                    (yas-item "999")
+                                                    (yas-submenu "sirs"
+                                                                 ((yas-item "12345")))
+                                                    (yas-submenu "ladies"
+                                                                 ((yas-item "54321"))))
+                                                  '("666")))))))
+      ,@body)))
+
+(ert-deftest test-yas-define-menu ()
+  (let ((yas-use-menu t))
+    (yas-with-even-more-interesting-snippet-dirs
+     (yas-reload-all 'no-jit)
+     (let ((menu (cdr (gethash 'fancy-mode yas--menu-table))))
+       (should (eql 4 (length menu)))
+       (dolist (item '("a-guy" "a-beggar"))
+         (should (find item menu :key #'third :test #'string=)))
+       (should-not (find "an-outcast" menu :key #'third :test #'string=))
+       (dolist (submenu '("sirs" "ladies"))
+         (should (keymapp
+                  (fourth
+                   (find submenu menu :key #'third :test #'string=)))))
+       ))))
+
+(ert-deftest test-group-menus ()
+  "Test group-based menus using .yas-make-groups and the group directive"
+  (let ((yas-use-menu t))
+    (yas-with-even-more-interesting-snippet-dirs
+     (yas-reload-all 'no-jit)
+     ;; first the subdir-based groups
+     ;;
+     (let ((menu (cdr (gethash 'c-mode yas--menu-table))))
+       (should (eql 3 (length menu)))
+       (dolist (item '("printf" "foo-group-a" "foo-group-b"))
+         (should (find item menu :key #'third :test #'string=)))
+       (dolist (submenu '("foo-group-a" "foo-group-b"))
+         (should (keymapp
+                  (fourth
+                   (find submenu menu :key #'third :test #'string=))))))
+     ;; now group directives
+     ;;
+     (let ((menu (cdr (gethash 'lisp-interaction-mode yas--menu-table))))
+       (should (eql 1 (length menu)))
+       (should (find "barbar" menu :key #'third :test #'string=))
+       (should (keymapp
+                (fourth
+                 (find "barbar" menu :key #'third :test #'string=))))))))
+
+(ert-deftest test-group-menus-twisted ()
+  "Same as similarly named test, but be mean.
+
+TODO: be meaner"
+  (let ((yas-use-menu t))
+    (yas-with-even-more-interesting-snippet-dirs
+     ;; add a group directive conflicting with the subdir and watch
+     ;; behaviour
+     (with-temp-buffer
+       (insert "# group: foo-group-c\n# --\nstrecmp($1)")
+       (write-region nil nil (concat (first (yas-snippet-dirs))
+                                     "/c-mode/foo-group-b/strcmp")))
+     (yas-reload-all 'no-jit)
+     (let ((menu (cdr (gethash 'c-mode yas--menu-table))))
+       (should (eql 4 (length menu)))
+       (dolist (item '("printf" "foo-group-a" "foo-group-b" "foo-group-c"))
+         (should (find item menu :key #'third :test #'string=)))
+       (dolist (submenu '("foo-group-a" "foo-group-b" "foo-group-c"))
+         (should (keymapp
+                  (fourth
+                   (find submenu menu :key #'third :test #'string=))))))
+     ;; delete the .yas-make-groups file and watch behaviour
+     ;;
+     (delete-file (concat (first (yas-snippet-dirs))
+                          "/c-mode/.yas-make-groups"))
+     (yas-reload-all 'no-jit)
+     (let ((menu (cdr (gethash 'c-mode yas--menu-table))))
+       (should (eql 5 (length menu))))
+     ;; Change a group directive and reload
+     ;;
+     (let ((menu (cdr (gethash 'lisp-interaction-mode yas--menu-table))))
+       (should (find "barbar" menu :key #'third :test #'string=)))
+
+     (with-temp-buffer
+       (insert "# group: foofoo\n# --\n(ert-deftest ${1:name} () $0)")
+       (write-region nil nil (concat (first (yas-snippet-dirs))
+                                     "/lisp-interaction-mode/ert-deftest")))
+     (yas-reload-all 'no-jit)
+     (let ((menu (cdr (gethash 'lisp-interaction-mode yas--menu-table))))
+       (should (eql 1 (length menu)))
+       (should (find "foofoo" menu :key #'third :test #'string=))
+       (should (keymapp
+                (fourth
+                 (find "foofoo" menu :key #'third :test #'string=))))))))
+
+
+;;; The infamous and problematic tab keybinding
+;;;
+(ert-deftest test-yas-tab-binding ()
+  (with-temp-buffer
+    (yas-minor-mode -1)
+    (should (not (eq (key-binding (yas--read-keybinding "<tab>")) 'yas-expand)))
+    (yas-minor-mode 1)
+    (should (eq (key-binding (yas--read-keybinding "<tab>")) 'yas-expand))
+    (yas-expand-snippet "$1 $2 $3")
+    (should (eq (key-binding [(tab)]) 'yas-next-field-or-maybe-expand))
+    (should (eq (key-binding (kbd "TAB")) 'yas-next-field-or-maybe-expand))
+    (should (eq (key-binding [(shift tab)]) 'yas-prev-field))
+    (should (eq (key-binding [backtab]) 'yas-prev-field))))
+
+(ert-deftest test-rebindings ()
+  (unwind-protect
+      (progn
+        (define-key yas-minor-mode-map [tab] nil)
+        (define-key yas-minor-mode-map (kbd "TAB") nil)
+        (define-key yas-minor-mode-map (kbd "SPC") 'yas-expand)
+        (with-temp-buffer
+          (yas-minor-mode 1)
+          (should (not (eq (key-binding (yas--read-keybinding "TAB")) 'yas-expand)))
+          (should (eq (key-binding (yas--read-keybinding "SPC")) 'yas-expand))
+          (yas-reload-all)
+          (should (not (eq (key-binding (yas--read-keybinding "TAB")) 'yas-expand)))
+          (should (eq (key-binding (yas--read-keybinding "SPC")) 'yas-expand))))
+    ;; FIXME: actually should restore to whatever saved values where there.
+    ;;
+    (define-key yas-minor-mode-map [tab] 'yas-expand)
+    (define-key yas-minor-mode-map (kbd "TAB") 'yas-expand)
+    (define-key yas-minor-mode-map (kbd "SPC") nil)))
+
+(ert-deftest test-yas-in-org ()
+  (with-temp-buffer
+    (org-mode)
+    (yas-minor-mode 1)
+    (should (eq (key-binding [(tab)]) 'yas-expand))
+    (should (eq (key-binding (kbd "TAB")) 'yas-expand))))
+
+(ert-deftest test-yas-activate-extra-modes ()
+  "Given a symbol, `yas-activate-extra-mode' should be able to
+add the snippets associated with the given mode."
+  (with-temp-buffer
+    (yas-saving-variables
+     (yas-with-snippet-dirs
+       '((".emacs.d/snippets"
+          ("markdown-mode"
+           ("_" . "_Text_ "))
+          ("emacs-lisp-mode"
+           ("car" . "(car )"))))
+       (yas-reload-all)
+       (emacs-lisp-mode)
+       (yas-minor-mode-on)
+       (yas-activate-extra-mode 'markdown-mode)
+       (should (eq 'markdown-mode (car yas--extra-modes)))
+       (yas-should-expand '(("_" . "_Text_ ")))
+       (yas-should-expand '(("car" . "(car )")))
+       (yas-deactivate-extra-mode 'markdown-mode)
+       (should-not (eq 'markdown-mode (car yas--extra-modes)))
+       (yas-should-not-expand '("_"))
+       (yas-should-expand '(("car" . "(car )")))))))
+
+
+;;; Helpers
+;;;
+(defun yas-should-expand (keys-and-expansions)
+  (dolist (key-and-expansion keys-and-expansions)
+    (yas-exit-all-snippets)
+    (narrow-to-region (point) (point))
+    (insert (car key-and-expansion))
+    (let ((yas-fallback-behavior nil))
+      (ert-simulate-command '(yas-expand)))
+    (unless (string= (yas--buffer-contents) (cdr key-and-expansion))
+      (ert-fail (format "\"%s\" should have expanded to \"%s\" but got \"%s\""
+                        (car key-and-expansion)
+                        (cdr key-and-expansion)
+                        (yas--buffer-contents)))))
+  (yas-exit-all-snippets))
+
+(defun yas-should-not-expand (keys)
+  (dolist (key keys)
+    (yas-exit-all-snippets)
+    (narrow-to-region (point) (point))
+    (insert key)
+    (let ((yas-fallback-behavior nil))
+      (ert-simulate-command '(yas-expand)))
+    (unless (string= (yas--buffer-contents) key)
+      (ert-fail (format "\"%s\" should have stayed put, but instead expanded to \"%s\""
+                        key
+                        (yas--buffer-contents))))))
+
+(defun yas-mock-insert (string)
+  (dotimes (i (length string))
+    (let ((last-command-event (aref string i)))
+      (ert-simulate-command '(self-insert-command 1)))))
+
+(defun yas-mock-yank (string)
+  (let ((interprogram-paste-function (lambda () string)))
+    (ert-simulate-command '(yank nil))))
+
+(defun yas-make-file-or-dirs (ass)
+  (let ((file-or-dir-name (car ass))
+        (content (cdr ass)))
+    (cond ((listp content)
+           (make-directory file-or-dir-name 'parents)
+           (let ((default-directory (concat default-directory "/" file-or-dir-name)))
+             (mapc #'yas-make-file-or-dirs content)))
+          ((stringp content)
+           (with-temp-buffer
+             (insert content)
+             (write-region nil nil file-or-dir-name nil 'nomessage)))
+          (t
+           (message "[yas] oops don't know this content")))))
+
+
+(defun yas-variables ()
+  (let ((syms))
+    (mapatoms #'(lambda (sym)
+                  (if (and (string-match "^yas-[^/]" (symbol-name sym))
+                           (boundp sym))
+                      (push sym syms))))
+    syms))
+
+(defun yas-call-with-saving-variables (fn)
+  (let* ((vars (yas-variables))
+         (saved-values (mapcar #'symbol-value vars)))
+    (unwind-protect
+        (funcall fn)
+      (loop for var in vars
+            for saved in saved-values
+            do (set var saved)))))
+
+(defun yas-call-with-snippet-dirs (dirs fn)
+  (let* ((default-directory (make-temp-file "yasnippet-fixture" t))
+         (yas-snippet-dirs (mapcar #'car dirs)))
+    (with-temp-message ""
+      (unwind-protect
+          (progn
+            (mapc #'yas-make-file-or-dirs dirs)
+            (funcall fn))
+        (when (>= emacs-major-version 24)
+          (delete-directory default-directory 'recursive))))))
+
+;;; Older emacsen
+;;;
+(unless (fboundp 'special-mode)
+  ;; FIXME: Why provide this default definition here?!?
+  (defalias 'special-mode 'fundamental))
+
+(unless (fboundp 'string-suffix-p)
+  ;; introduced in Emacs 24.4
+  (defun string-suffix-p (suffix string &optional ignore-case)
+    "Return non-nil if SUFFIX is a suffix of STRING.
+If IGNORE-CASE is non-nil, the comparison is done without paying
+attention to case differences."
+    (let ((start-pos (- (length string) (length suffix))))
+      (and (>= start-pos 0)
+           (eq t (compare-strings suffix nil nil
+                                  string start-pos nil ignore-case))))))
+
+;;; btw to test this in emacs22 mac osx:
+;;; curl -L -O https://github.com/mirrors/emacs/raw/master/lisp/emacs-lisp/ert.el
+;;; curl -L -O https://github.com/mirrors/emacs/raw/master/lisp/emacs-lisp/ert-x.el
+;;; /usr/bin/emacs -nw -Q -L . -l yasnippet-tests.el --batch -e ert
+
+
+(put 'yas-saving-variables                   'edebug-form-spec t)
+(put 'yas-with-snippet-dirs                  'edebug-form-spec t)
+(put 'yas-with-overriden-buffer-list         'edebug-form-spec t)
+(put 'yas-with-some-interesting-snippet-dirs 'edebug-form-spec t)
+
+
+(put 'yas--with-temporary-redefinitions 'lisp-indent-function 1)
+(put 'yas--with-temporary-redefinitions 'edebug-form-spec '((&rest (defun*)) cl-declarations body))
+
+
+
+
+(provide 'yasnippet-tests)
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; byte-compile-warnings: (not cl-functions)
+;; End:
+;;; yasnippet-tests.el ends here
new file mode 100644
--- /dev/null
+++ b/elpa/yasnippet-0.9.1/yasnippet.el
@@ -0,0 +1,4596 @@
+;;; yasnippet.el --- Yet another snippet extension for Emacs.
+
+;; Copyright (C) 2008-2013, 2015 Free Software Foundation, Inc.
+;; Authors: pluskid <pluskid@gmail.com>,  João Távora <joaotavora@gmail.com>, Noam Postavsky <npostavs@gmail.com>
+;; Maintainer: Noam Postavsky <npostavs@gmail.com>
+;; Version: 0.9.1
+;; X-URL: http://github.com/capitaomorte/yasnippet
+;; Keywords: convenience, emulation
+;; URL: http://github.com/capitaomorte/yasnippet
+;; EmacsWiki: YaSnippetMode
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;;   Basic steps to setup:
+;;
+;;    (add-to-list 'load-path
+;;                 "~/path-to-yasnippet")
+;;    (require 'yasnippet)
+;;    (yas-global-mode 1)
+;;
+;;
+;;   Interesting variables are:
+;;
+;;       `yas-snippet-dirs'
+;;
+;;           The directory where user-created snippets are to be
+;;           stored.  Can also be a list of directories.  In that case,
+;;           when used for bulk (re)loading of snippets (at startup or
+;;           via `yas-reload-all'), directories appearing earlier in
+;;           the list override other dir's snippets.  Also, the first
+;;           directory is taken as the default for storing the user's
+;;           new snippets.
+;;
+;;           The deprecated `yas/root-directory' aliases this variable
+;;           for backward-compatibility.
+;;
+;;
+;;   Major commands are:
+;;
+;;       M-x yas-expand
+;;
+;;           Try to expand snippets before point.  In `yas-minor-mode',
+;;           this is normally bound to TAB, but you can customize it in
+;;           `yas-minor-mode-map'.
+;;
+;;       M-x yas-load-directory
+;;
+;;           Prompts you for a directory hierarchy of snippets to load.
+;;
+;;       M-x yas-activate-extra-mode
+;;
+;;           Prompts you for an extra mode to add snippets for in the
+;;           current buffer.
+;;
+;;       M-x yas-insert-snippet
+;;
+;;           Prompts you for possible snippet expansion if that is
+;;           possible according to buffer-local and snippet-local
+;;           expansion conditions.  With prefix argument, ignore these
+;;           conditions.
+;;
+;;       M-x yas-visit-snippet-file
+;;
+;;           Prompts you for possible snippet expansions like
+;;           `yas-insert-snippet', but instead of expanding it, takes
+;;           you directly to the snippet definition's file, if it
+;;           exists.
+;;
+;;       M-x yas-new-snippet
+;;
+;;           Lets you create a new snippet file in the correct
+;;           subdirectory of `yas-snippet-dirs', according to the
+;;           active major mode.
+;;
+;;       M-x yas-load-snippet-buffer
+;;
+;;           When editing a snippet, this loads the snippet.  This is
+;;           bound to "C-c C-c" while in the `snippet-mode' editing
+;;           mode.
+;;
+;;       M-x yas-tryout-snippet
+;;
+;;           When editing a snippet, this opens a new empty buffer,
+;;           sets it to the appropriate major mode and inserts the
+;;           snippet there, so you can see what it looks like.  This is
+;;           bound to "C-c C-t" while in `snippet-mode'.
+;;
+;;       M-x yas-describe-tables
+;;
+;;           Lists known snippets in a separate buffer.  User is
+;;           prompted as to whether only the currently active tables
+;;           are to be displayed, or all the tables for all major
+;;           modes.
+;;
+;;   If you have `dropdown-list' installed, you can optionally use it
+;;   as the preferred "prompting method", putting in your .emacs file,
+;;   for example:
+;;
+;;       (require 'dropdown-list)
+;;       (setq yas-prompt-functions '(yas-dropdown-prompt
+;;                                    yas-ido-prompt
+;;                                    yas-completing-prompt))
+;;
+;;   Also check out the customization group
+;;
+;;        M-x customize-group RET yasnippet RET
+;;
+;;   If you use the customization group to set variables
+;;   `yas-snippet-dirs' or `yas-global-mode', make sure the path to
+;;   "yasnippet.el" is present in the `load-path' *before* the
+;;   `custom-set-variables' is executed in your .emacs file.
+;;
+;;   For more information and detailed usage, refer to the project page:
+;;      http://github.com/capitaomorte/yasnippet
+
+;;; Code:
+
+(require 'cl)
+(require 'cl-lib)
+(require 'easymenu)
+(require 'help-mode)
+
+(defvar yas--editing-template)
+(defvar yas--guessed-modes)
+(defvar yas--indent-original-column)
+(defvar yas--scheduled-jit-loads)
+(defvar yas-keymap)
+(defvar yas-selected-text)
+(defvar yas-verbosity)
+(defvar yas--current-template)
+
+
+;;; User customizable variables
+
+(defgroup yasnippet nil
+  "Yet Another Snippet extension"
+  :prefix "yas-"
+  :group 'editing)
+
+(defvar yas-installed-snippets-dir nil)
+(setq yas-installed-snippets-dir
+      (when load-file-name
+        (concat (file-name-directory load-file-name) "snippets")))
+
+(defconst yas--default-user-snippets-dir
+  (concat user-emacs-directory "snippets"))
+
+(defcustom yas-snippet-dirs (remove nil
+                                    (list yas--default-user-snippets-dir
+                                          'yas-installed-snippets-dir))
+  "List of top-level snippet directories.
+
+Each element, a string or a symbol whose value is a string,
+designates a top-level directory where per-mode snippet
+directories can be found.
+
+Elements appearing earlier in the list override later elements'
+snippets.
+
+The first directory is taken as the default for storing snippet's
+created with `yas-new-snippet'. "
+  :type '(choice (string :tag "Single directory (string)")
+                 (repeat :args (string) :tag "List of directories (strings)"))
+  :group 'yasnippet
+  :require 'yasnippet
+  :set #'(lambda (symbol new)
+           (let ((old (and (boundp symbol)
+                           (symbol-value symbol))))
+             (set-default symbol new)
+             (unless (or (not (fboundp 'yas-reload-all))
+                         (equal old new))
+               (yas-reload-all)))))
+
+(defun yas-snippet-dirs ()
+  "Return variable `yas-snippet-dirs' as list of strings."
+  (cl-loop for e in (if (listp yas-snippet-dirs)
+                        yas-snippet-dirs
+                      (list yas-snippet-dirs))
+           collect
+           (cond ((stringp e) e)
+                 ((and (symbolp e)
+                       (boundp e)
+                       (stringp (symbol-value e)))
+                  (symbol-value e))
+                 (t
+                  (error "[yas] invalid element %s in `yas-snippet-dirs'" e)))))
+
+(defvaralias 'yas/root-directory 'yas-snippet-dirs)
+
+(defcustom yas-new-snippet-default "\
+# -*- mode: snippet -*-
+# name: $1
+# key: ${2:${1:$(yas--key-from-desc yas-text)}}
+# --
+$0"
+  "Default snippet to use when creating a new snippet.
+If nil, don't use any snippet."
+  :type 'string
+  :group 'yasnippet)
+
+(defcustom yas-prompt-functions '(yas-dropdown-prompt
+                                  yas-completing-prompt
+                                  yas-maybe-ido-prompt
+                                  yas-no-prompt)
+  "Functions to prompt for keys, templates, etc interactively.
+
+These functions are called with the following arguments:
+
+- PROMPT: A string to prompt the user
+
+- CHOICES: a list of strings or objects.
+
+- optional DISPLAY-FN : A function that, when applied to each of
+the objects in CHOICES will return a string.
+
+The return value of any function you put here should be one of
+the objects in CHOICES, properly formatted with DISPLAY-FN (if
+that is passed).
+
+- To signal that your particular style of prompting is
+unavailable at the moment, you can also have the function return
+nil.
+
+- To signal that the user quit the prompting process, you can
+signal `quit' with
+
+  (signal 'quit \"user quit!\")."
+  :type '(repeat function)
+  :group 'yasnippet)
+
+(defcustom yas-indent-line 'auto
+  "Controls indenting applied to a recent snippet expansion.
+
+The following values are possible:
+
+- `fixed' Indent the snippet to the current column;
+
+- `auto' Indent each line of the snippet with `indent-according-to-mode'
+
+Every other value means don't apply any snippet-side indentation
+after expansion (the manual per-line \"$>\" indentation still
+applies)."
+  :type '(choice (const :tag "Nothing"  nothing)
+                 (const :tag "Fixed"    fixed)
+                 (const :tag "Auto"     auto))
+  :group 'yasnippet)
+
+(defcustom yas-also-auto-indent-first-line nil
+  "Non-nil means also auto indent first line according to mode.
+
+Naturally this is only valid when `yas-indent-line' is `auto'"
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-snippet-revival t
+  "Non-nil means re-activate snippet fields after undo/redo."
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-triggers-in-field nil
+  "If non-nil, allow stacked expansions (snippets inside snippets).
+
+Otherwise `yas-next-field-or-maybe-expand' just moves on to the
+next field"
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-fallback-behavior 'call-other-command
+  "How to act when `yas-expand' does *not* expand a snippet.
+
+- `call-other-command' means try to temporarily disable YASnippet
+    and call the next command bound to whatever key was used to
+    invoke `yas-expand'.
+
+- nil or the symbol `return-nil' mean do nothing. (and
+  `yas-expand' returns nil)
+
+- A Lisp form (apply COMMAND . ARGS) means interactively call
+  COMMAND. If ARGS is non-nil, call COMMAND non-interactively
+  with ARGS as arguments."
+  :type '(choice (const :tag "Call previous command"  call-other-command)
+                 (const :tag "Do nothing"             return-nil))
+  :group 'yasnippet)
+
+(defcustom yas-choose-keys-first nil
+  "If non-nil, prompt for snippet key first, then for template.
+
+Otherwise prompts for all possible snippet names.
+
+This affects `yas-insert-snippet' and `yas-visit-snippet-file'."
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-choose-tables-first nil
+  "If non-nil, and multiple eligible snippet tables, prompts user for tables first.
+
+Otherwise, user chooses between the merging together of all
+eligible tables.
+
+This affects `yas-insert-snippet', `yas-visit-snippet-file'"
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-use-menu 'abbreviate
+  "Display a YASnippet menu in the menu bar.
+
+When non-nil, submenus for each snippet table will be listed
+under the menu \"Yasnippet\".
+
+- If set to `abbreviate', only the current major-mode
+menu and the modes set in `yas--extra-modes' are listed.
+
+- If set to `full', every submenu is listed
+
+- If set to `nil', hide the menu.
+
+Any other non-nil value, every submenu is listed."
+  :type '(choice (const :tag "Full"  full)
+                 (const :tag "Abbreviate" abbreviate)
+                 (const :tag "No menu" nil))
+  :group 'yasnippet)
+
+(defcustom yas-trigger-symbol (or (and (eq window-system 'mac)
+                                       (ignore-errors
+                                         (char-to-string ?\x21E5))) ;; little ->| sign
+                                  " =>")
+  "The text that will be used in menu to represent the trigger."
+  :type 'string
+  :group 'yasnippet)
+
+(defcustom yas-wrap-around-region nil
+  "If non-nil, snippet expansion wraps around selected region.
+
+The wrapping occurs just before the snippet's exit marker.  This
+can be overridden on a per-snippet basis."
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-good-grace t
+  "If non-nil, don't raise errors in inline elisp evaluation.
+
+An error string \"[yas] error\" is returned instead."
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-visit-from-menu nil
+  "If non-nil visit snippets's files from menu, instead of expanding them.
+
+This can only work when snippets are loaded from files."
+  :type 'boolean
+  :group 'yasnippet)
+
+(defcustom yas-expand-only-for-last-commands nil
+  "List of `last-command' values to restrict tab-triggering to, or nil.
+
+Leave this set at nil (the default) to be able to trigger an
+expansion simply by placing the cursor after a valid tab trigger,
+using whichever commands.
+
+Optionally, set this to something like '(self-insert-command) if
+you to wish restrict expansion to only happen when the last
+letter of the snippet tab trigger was typed immediately before
+the trigger key itself."
+  :type '(repeat function)
+  :group 'yasnippet)
+
+;; Only two faces, and one of them shouldn't even be used...
+;;
+(defface yas-field-highlight-face
+  '((t (:inherit 'region)))
+  "The face used to highlight the currently active field of a snippet"
+  :group 'yasnippet)
+
+(defface yas--field-debug-face
+  '()
+  "The face used for debugging some overlays normally hidden"
+  :group 'yasnippet)
+
+
+;;; User-visible variables
+
+(defvar yas-keymap  (let ((map (make-sparse-keymap)))
+                      (define-key map [(tab)]       'yas-next-field-or-maybe-expand)
+                      (define-key map (kbd "TAB")   'yas-next-field-or-maybe-expand)
+                      (define-key map [(shift tab)] 'yas-prev-field)
+                      (define-key map [backtab]     'yas-prev-field)
+                      (define-key map (kbd "C-g")   'yas-abort-snippet)
+                      (define-key map (kbd "C-d")   'yas-skip-and-clear-or-delete-char)
+                      map)
+  "The active keymap while a snippet expansion is in progress.")
+
+(defvar yas-key-syntaxes (list "w" "w_" "w_." "w_.()"
+                               #'yas-try-key-from-whitespace)
+  "Syntaxes and functions to help look for trigger keys before point.
+
+Each element in this list specifies how to skip buffer positions
+backwards and look for the start of a trigger key.
+
+Each element can be either a string or a function receiving the
+original point as an argument. A string element is simply passed
+to `skip-syntax-backward' whereas a function element is called
+with no arguments and should also place point before the original
+position.
+
+The string between the resulting buffer position and the original
+point is matched against the trigger keys in the active snippet
+tables.
+
+If no expandable snippets are found, the next element is the list
+is tried, unless a function element returned the symbol `again',
+in which case it is called again from the previous position and
+may once more reposition point.
+
+For example, if `yas-key-syntaxes'' value is '(\"w\" \"w_\"),
+trigger keys composed exclusively of \"word\"-syntax characters
+are looked for first. Failing that, longer keys composed of
+\"word\" or \"symbol\" syntax are looked for. Therefore,
+triggering after
+
+foo-bar
+
+will, according to the \"w\" element first try \"barbaz\". If
+that isn't a trigger key, \"foo-barbaz\" is tried, respecting the
+second \"w_\" element. Notice that even if \"baz\" is a trigger
+key for an active snippet, it won't be expanded, unless a
+function is added to `yas-key-syntaxes' that eventually places
+point between \"bar\" and \"baz\".
+
+See also Info node `(elisp) Syntax Descriptors'.")
+
+(defvar yas-after-exit-snippet-hook
+  '()
+  "Hooks to run after a snippet exited.
+
+The hooks will be run in an environment where some variables bound to
+proper values:
+
+`yas-snippet-beg' : The beginning of the region of the snippet.
+
+`yas-snippet-end' : Similar to beg.
+
+Attention: These hooks are not run when exiting nested/stacked snippet expansion!")
+
+(defvar yas-before-expand-snippet-hook
+  '()
+  "Hooks to run just before expanding a snippet.")
+
+(defvar yas-buffer-local-condition
+  '(if (and (let ((ppss (syntax-ppss)))
+              (or (nth 3 ppss) (nth 4 ppss)))
+            (memq this-command '(yas-expand yas-expand-from-trigger-key
+                                            yas-expand-from-keymap)))
+       '(require-snippet-condition . force-in-comment)
+     t)
+  "Snippet expanding condition.
+
+This variable is a Lisp form which is evaluated every time a
+snippet expansion is attempted:
+
+    * If it evaluates to nil, no snippets can be expanded.
+
+    * If it evaluates to the a cons (require-snippet-condition
+      . REQUIREMENT)
+
+       * Snippets bearing no \"# condition:\" directive are not
+         considered
+
+       * Snippets bearing conditions that evaluate to nil (or
+         produce an error) won't be considered.
+
+       * If the snippet has a condition that evaluates to non-nil
+         RESULT:
+
+          * If REQUIREMENT is t, the snippet is considered
+
+          * If REQUIREMENT is `eq' RESULT, the snippet is
+            considered
+
+          * Otherwise, the snippet is not considered.
+
+    * If it evaluates to the symbol 'always, all snippets are
+      considered for expansion, regardless of any conditions.
+
+    * If it evaluates to t or some other non-nil value
+
+       * Snippet bearing no conditions, or conditions that
+         evaluate to non-nil, are considered for expansion.
+
+       * Otherwise, the snippet is not considered.
+
+Here's an example preventing snippets from being expanded from
+inside comments, in `python-mode' only, with the exception of
+snippets returning the symbol 'force-in-comment in their
+conditions.
+
+ (add-hook 'python-mode-hook
+           '(lambda ()
+              (setq yas-buffer-local-condition
+                    '(if (python-in-string/comment)
+                         '(require-snippet-condition . force-in-comment)
+                       t))))
+
+The default value is similar, it filters out potential snippet
+expansions inside comments and string literals, unless the
+snippet itself contains a condition that returns the symbol
+`force-in-comment'.")
+
+
+;;; Internal variables
+
+(defvar yas--version "0.9.1")
+
+(defvar yas--menu-table (make-hash-table)
+  "A hash table of MAJOR-MODE symbols to menu keymaps.")
+
+(defvar yas--escaped-characters
+  '(?\\ ?` ?\" ?' ?$ ?} ?{ ?\( ?\))
+  "List of characters which *might* need to be escaped.")
+
+(defconst yas--field-regexp
+  "${\\([0-9]+:\\)?\\([^}]*\\)}"
+  "A regexp to *almost* recognize a field.")
+
+(defconst yas--multi-dollar-lisp-expression-regexp
+  "$+[ \t\n]*\\(([^)]*)\\)"
+  "A regexp to *almost* recognize a \"$(...)\" expression.")
+
+(defconst yas--backquote-lisp-expression-regexp
+  "`\\([^`]*\\)`"
+  "A regexp to recognize a \"`lisp-expression`\" expression." )
+
+(defconst yas--transform-mirror-regexp
+  "${\\(?:\\([0-9]+\\):\\)?$\\([ \t\n]*([^}]*\\)"
+  "A regexp to *almost* recognize a mirror with a transform.")
+
+(defconst yas--simple-mirror-regexp
+  "$\\([0-9]+\\)"
+  "A regexp to recognize a simple mirror.")
+
+(defvar yas--snippet-id-seed 0
+  "Contains the next id for a snippet.")
+
+(defun yas--snippet-next-id ()
+  (let ((id yas--snippet-id-seed))
+    (cl-incf yas--snippet-id-seed)
+    id))
+
+
+;;; Minor mode stuff
+
+;; XXX: `last-buffer-undo-list' is somehow needed in Carbon Emacs for MacOSX
+(defvar last-buffer-undo-list nil)
+
+(defvar yas--minor-mode-menu nil
+  "Holds the YASnippet menu.")
+
+(defvar yas-minor-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map [(tab)]     'yas-expand)
+    (define-key map (kbd "TAB") 'yas-expand)
+    (define-key map "\C-c&\C-s" 'yas-insert-snippet)
+    (define-key map "\C-c&\C-n" 'yas-new-snippet)
+    (define-key map "\C-c&\C-v" 'yas-visit-snippet-file)
+    map)
+  "The keymap used when `yas-minor-mode' is active.")
+
+(easy-menu-define yas--minor-mode-menu
+      yas-minor-mode-map
+      "Menu used when `yas-minor-mode' is active."
+  '("YASnippet" :visible yas-use-menu
+    "----"
+    ["Expand trigger" yas-expand
+     :help "Possibly expand tab trigger before point"]
+    ["Insert at point..." yas-insert-snippet
+     :help "Prompt for an expandable snippet and expand it at point"]
+    ["New snippet..." yas-new-snippet
+     :help "Create a new snippet in an appropriate directory"]
+    ["Visit snippet file..." yas-visit-snippet-file
+     :help "Prompt for an expandable snippet and find its file"]
+    "----"
+    ("Snippet menu behaviour"
+     ["Visit snippets" (setq yas-visit-from-menu t)
+      :help "Visit snippets from the menu"
+      :active t :style radio   :selected yas-visit-from-menu]
+     ["Expand snippets" (setq yas-visit-from-menu nil)
+      :help "Expand snippets from the menu"
+      :active t :style radio :selected (not yas-visit-from-menu)]
+     "----"
+     ["Show all known modes" (setq yas-use-menu 'full)
+      :help "Show one snippet submenu for each loaded table"
+      :active t :style radio   :selected (eq yas-use-menu 'full)]
+     ["Abbreviate according to current mode" (setq yas-use-menu 'abbreviate)
+      :help "Show only snippet submenus for the current active modes"
+      :active t :style radio   :selected (eq yas-use-menu 'abbreviate)])
+    ("Indenting"
+     ["Auto" (setq yas-indent-line 'auto)
+      :help "Indent each line of the snippet with `indent-according-to-mode'"
+      :active t :style radio   :selected (eq yas-indent-line 'auto)]
+     ["Fixed" (setq yas-indent-line 'fixed)
+      :help "Indent the snippet to the current column"
+      :active t :style radio   :selected (eq yas-indent-line 'fixed)]
+     ["None" (setq yas-indent-line 'none)
+      :help "Don't apply any particular snippet indentation after expansion"
+      :active t :style radio   :selected (not (member yas-indent-line '(fixed auto)))]
+     "----"
+     ["Also auto indent first line" (setq yas-also-auto-indent-first-line
+                                          (not yas-also-auto-indent-first-line))
+      :help "When auto-indenting also, auto indent the first line menu"
+      :active (eq yas-indent-line 'auto)
+      :style toggle :selected yas-also-auto-indent-first-line]
+     )
+    ("Prompting method"
+     ["System X-widget" (setq yas-prompt-functions
+                              (cons 'yas-x-prompt
+                                    (remove 'yas-x-prompt
+                                            yas-prompt-functions)))
+      :help "Use your windowing system's (gtk, mac, windows, etc...) default menu"
+      :active t :style radio   :selected (eq (car yas-prompt-functions)
+                                             'yas-x-prompt)]
+     ["Dropdown-list" (setq yas-prompt-functions
+                            (cons 'yas-dropdown-prompt
+                                  (remove 'yas-dropdown-prompt
+                                          yas-prompt-functions)))
+      :help "Use a special dropdown list"
+      :active t :style radio   :selected (eq (car yas-prompt-functions)
+                                             'yas-dropdown-prompt)]
+     ["Ido" (setq yas-prompt-functions
+                  (cons 'yas-ido-prompt
+                        (remove 'yas-ido-prompt
+                                yas-prompt-functions)))
+      :help "Use an ido-style minibuffer prompt"
+      :active t :style radio   :selected (eq (car yas-prompt-functions)
+                                             'yas-ido-prompt)]
+     ["Completing read" (setq yas-prompt-functions
+                              (cons 'yas-completing-prompt
+                                    (remove 'yas-completing-prompt
+                                            yas-prompt-functions)))
+      :help "Use a normal minibuffer prompt"
+      :active t :style radio   :selected (eq (car yas-prompt-functions)
+                                             'yas-completing-prompt)]
+     )
+    ("Misc"
+     ["Wrap region in exit marker"
+      (setq yas-wrap-around-region
+            (not yas-wrap-around-region))
+      :help "If non-nil automatically wrap the selected text in the $0 snippet exit"
+      :style toggle :selected yas-wrap-around-region]
+     ["Allow stacked expansions "
+      (setq yas-triggers-in-field
+            (not yas-triggers-in-field))
+      :help "If non-nil allow snippets to be triggered inside other snippet fields"
+      :style toggle :selected yas-triggers-in-field]
+     ["Revive snippets on undo "
+      (setq yas-snippet-revival
+            (not yas-snippet-revival))
+      :help "If non-nil allow snippets to become active again after undo"
+      :style toggle :selected yas-snippet-revival]
+     ["Good grace "
+      (setq yas-good-grace
+            (not yas-good-grace))
+      :help "If non-nil don't raise errors in bad embedded elisp in snippets"
+      :style toggle :selected yas-good-grace]
+     )
+    "----"
+    ["Load snippets..."  yas-load-directory
+     :help "Load snippets from a specific directory"]
+    ["Reload everything" yas-reload-all
+     :help "Cleanup stuff, reload snippets, rebuild menus"]
+    ["About"            yas-about
+     :help "Display some information about YASnippet"]))
+
+(defvar yas--extra-modes nil
+  "An internal list of modes for which to also lookup snippets.
+
+This variable probably makes more sense as buffer-local, so
+ensure your use `make-local-variable' when you set it.")
+(define-obsolete-variable-alias 'yas-extra-modes 'yas--extra-modes "0.9.1")
+
+(defvar yas--tables (make-hash-table)
+  "A hash table of mode symbols to `yas--table' objects.")
+
+(defvar yas--parents (make-hash-table)
+  "A hash table of mode symbols do lists of direct parent mode symbols.
+
+This list is populated when reading the \".yas-parents\" files
+found when traversing snippet directories with
+`yas-load-directory'.
+
+There might be additional parenting information stored in the
+`derived-mode-parent' property of some mode symbols, but that is
+not recorded here.")
+
+(defvar yas--direct-keymaps (list)
+  "Keymap alist supporting direct snippet keybindings.
+
+This variable is placed in `emulation-mode-map-alists'.
+
+Its elements looks like (TABLE-NAME . KEYMAP).  They're
+instantiated on `yas-reload-all' but KEYMAP is added to only when
+loading snippets.  `yas--direct-TABLE-NAME' is then a variable set
+buffer-locally when entering `yas-minor-mode'.  KEYMAP binds all
+defined direct keybindings to the command
+`yas-expand-from-keymap' which then which snippet to expand.")
+
+(defun yas-direct-keymaps-reload ()
+  "Force reload the direct keybinding for active snippet tables."
+  (interactive)
+  (setq yas--direct-keymaps nil)
+  (maphash #'(lambda (name table)
+               (push (cons (intern (format "yas--direct-%s" name))
+                           (yas--table-direct-keymap table))
+                     yas--direct-keymaps))
+           yas--tables))
+
+(defun yas--modes-to-activate (&optional mode)
+  "Compute list of mode symbols that are active for `yas-expand'
+and friends."
+  (let* ((explored (if mode (list mode) ; Building up list in reverse.
+                     (cons major-mode (reverse yas--extra-modes))))
+         (dfs
+          (lambda (mode)
+            (cl-loop for neighbour
+                     in (cl-list* (get mode 'derived-mode-parent)
+                                  (ignore-errors (symbol-function mode))
+                                  (gethash mode yas--parents))
+                     when (and neighbour
+                               (not (memq neighbour explored))
+                               (symbolp neighbour))
+                     do (push neighbour explored)
+                     (funcall dfs neighbour)))))
+    (mapcar dfs explored)
+    (nreverse explored)))
+
+(defvar yas-minor-mode-hook nil
+  "Hook run when `yas-minor-mode' is turned on.")
+
+;;;###autoload
+(define-minor-mode yas-minor-mode
+  "Toggle YASnippet mode.
+
+When YASnippet mode is enabled, `yas-expand', normally bound to
+the TAB key, expands snippets of code depending on the major
+mode.
+
+With no argument, this command toggles the mode.
+positive prefix argument turns on the mode.
+Negative prefix argument turns off the mode.
+
+Key bindings:
+\\{yas-minor-mode-map}"
+  nil
+  ;; The indicator for the mode line.
+  " yas"
+  :group 'yasnippet
+  (cond (yas-minor-mode
+         ;; Install the direct keymaps in `emulation-mode-map-alists'
+         ;; (we use `add-hook' even though it's not technically a hook,
+         ;; but it works). Then define variables named after modes to
+         ;; index `yas--direct-keymaps'.
+         ;;
+         ;; Also install the post-command-hook.
+         ;;
+         (add-hook 'emulation-mode-map-alists 'yas--direct-keymaps)
+         (add-hook 'post-command-hook 'yas--post-command-handler nil t)
+         ;; Set the `yas--direct-%s' vars for direct keymap expansion
+         ;;
+         (dolist (mode (yas--modes-to-activate))
+           (let ((name (intern (format "yas--direct-%s" mode))))
+             (set-default name nil)
+             (set (make-local-variable name) t)))
+         ;; Perform JIT loads
+         ;;
+         (yas--load-pending-jits))
+        (t
+         ;; Uninstall the direct keymaps and the post-command hook
+         ;;
+         (remove-hook 'post-command-hook 'yas--post-command-handler t)
+         (remove-hook 'emulation-mode-map-alists 'yas--direct-keymaps))))
+
+(defun yas-activate-extra-mode (mode)
+  "Activates the snippets for the given `mode' in the buffer.
+
+The function can be called in the hook of a minor mode to
+activate snippets associated with that mode."
+  (interactive
+   (let (modes
+         symbol)
+     (maphash (lambda (k _)
+                (setq modes (cons (list k) modes)))
+              yas--parents)
+     (setq symbol (completing-read
+                   "Activate mode: " modes nil t))
+     (list
+      (when (not (string= "" symbol))
+        (intern symbol)))))
+  (when mode
+    (add-to-list (make-local-variable 'yas--extra-modes) mode)
+    (yas--load-pending-jits)))
+
+(defun yas-deactivate-extra-mode (mode)
+  "Deactivates the snippets for the given `mode' in the buffer."
+  (interactive
+   (list (intern
+          (completing-read
+           "Deactivate mode: " (mapcar #'list yas--extra-modes) nil t))))
+  (set (make-local-variable 'yas--extra-modes)
+       (remove mode
+               yas--extra-modes)))
+
+(defvar yas-dont-activate '(minibufferp)
+  "If non-nil don't let `yas-global-mode' affect some buffers.
+
+If a function of zero arguments, then its result is used.
+
+If a list of functions, then all functions must return nil to
+activate yas for this buffer.
+
+In Emacsen <= 23, this variable is buffer-local.  Because
+`yas-minor-mode-on' is called by `yas-global-mode' after
+executing the buffer's major mode hook, setting this variable
+there is an effective way to define exceptions to the \"global\"
+activation behaviour.
+
+In Emacsen > 23, only the global value is used.  To define
+per-mode exceptions to the \"global\" activation behaviour, call
+`yas-minor-mode' with a negative argument directily in the major
+mode's hook.")
+(unless (> emacs-major-version 23)
+  (with-no-warnings
+    (make-variable-buffer-local 'yas-dont-activate)))
+
+
+(defun yas-minor-mode-on ()
+  "Turn on YASnippet minor mode.
+
+Honour `yas-dont-activate', which see."
+  (interactive)
+  ;; Check `yas-dont-activate'
+  (unless (cond ((functionp yas-dont-activate)
+                 (funcall yas-dont-activate))
+                ((consp yas-dont-activate)
+                 (some #'funcall yas-dont-activate))
+                (yas-dont-activate))
+    (yas-minor-mode 1)))
+
+;;;###autoload
+(define-globalized-minor-mode yas-global-mode yas-minor-mode yas-minor-mode-on
+  :group 'yasnippet
+  :require 'yasnippet)
+
+(defun yas--global-mode-reload-with-jit-maybe ()
+  "Run `yas-reload-all' when `yas-global-mode' is on."
+  (when yas-global-mode (yas-reload-all)))
+
+(add-hook 'yas-global-mode-hook 'yas--global-mode-reload-with-jit-maybe)
+
+
+;;; Major mode stuff
+
+(defvar yas--font-lock-keywords
+  (append '(("^#.*$" . font-lock-comment-face))
+          lisp-font-lock-keywords-2
+          '(("$\\([0-9]+\\)"
+             (0 font-lock-keyword-face)
+             (1 font-lock-string-face t))
+            ("${\\([0-9]+\\):?"
+             (0 font-lock-keyword-face)
+             (1 font-lock-warning-face t))
+            ("${" . font-lock-keyword-face)
+            ("$[0-9]+?" . font-lock-preprocessor-face)
+            ("\\(\\$(\\)" 1 font-lock-preprocessor-face)
+            ("}"
+             (0 font-lock-keyword-face)))))
+
+(defvar snippet-mode-map
+  (let ((map (make-sparse-keymap)))
+    (easy-menu-define nil
+      map
+      "Menu used when snippet-mode is active."
+      (cons "Snippet"
+            (mapcar #'(lambda (ent)
+                        (when (third ent)
+                          (define-key map (third ent) (second ent)))
+                        (vector (first ent) (second ent) t))
+                    '(("Load this snippet" yas-load-snippet-buffer "\C-c\C-l")
+                      ("Load and quit window" yas-load-snippet-buffer-and-close "\C-c\C-c")
+                      ("Try out this snippet" yas-tryout-snippet "\C-c\C-t")))))
+    map)
+  "The keymap used when `snippet-mode' is active.")
+
+
+(define-derived-mode snippet-mode text-mode "Snippet"
+  "A mode for editing yasnippets"
+  (setq font-lock-defaults '(yas--font-lock-keywords))
+  (set (make-local-variable 'require-final-newline) nil)
+  (set (make-local-variable 'comment-start) "#")
+  (set (make-local-variable 'comment-start-skip) "#+[\t ]*"))
+
+
+
+;;; Internal structs for template management
+
+(cl-defstruct (yas--template
+               (:constructor yas--make-template)
+               ;; Handles `yas-define-snippets' format, plus the
+               ;; initial TABLE argument.
+               (:constructor
+                yas--define-snippets-2
+                (table
+                 key content
+                 &optional xname condition group
+                 expand-env load-file xkeybinding xuuid save-file
+                 &aux
+                 (name (or xname
+                           ;; A little redundant: we always get a name
+                           ;; from `yas--parse-template' except when
+                           ;; there isn't a file.
+                           (and load-file (file-name-nondirectory load-file))
+                           (and save-file (file-name-nondirectory save-file))
+                           key))
+                 (keybinding (yas--read-keybinding xkeybinding))
+                 (uuid (or xuuid name))
+                 (old (gethash uuid (yas--table-uuidhash table)))
+                 (menu-binding-pair
+                  (and old (yas--template-menu-binding-pair old)))
+                 (perm-group
+                  (and old (yas--template-perm-group old))))))
+  "A template for a snippet."
+  key
+  content
+  name
+  condition
+  expand-env
+  load-file
+  save-file
+  keybinding
+  uuid
+  menu-binding-pair
+  group      ;; as dictated by the #group: directive or .yas-make-groups
+  perm-group ;; as dictated by `yas-define-menu'
+  table
+  )
+
+(defstruct (yas--table (:constructor yas--make-snippet-table (name)))
+  "A table to store snippets for a particular mode.
+
+Has the following fields:
+
+`yas--table-name'
+
+  A symbol name normally corresponding to a major mode, but can
+  also be a pseudo major-mode to be used in
+  `yas-activate-extra-mode', for example.
+
+`yas--table-hash'
+
+  A hash table (KEY . NAMEHASH), known as the \"keyhash\". KEY is
+  a string or a vector, where the former is the snippet's trigger
+  and the latter means it's a direct keybinding. NAMEHASH is yet
+  another hash of (NAME . TEMPLATE) where NAME is the snippet's
+  name and TEMPLATE is a `yas--template' object.
+
+`yas--table-direct-keymap'
+
+  A keymap for the snippets in this table that have direct
+  keybindings. This is kept in sync with the keyhash, i.e., all
+  the elements of the keyhash that are vectors appear here as
+  bindings to `yas-expand-from-keymap'.
+
+`yas--table-uuidhash'
+
+  A hash table mapping snippets uuid's to the same `yas--template'
+  objects. A snippet uuid defaults to the snippet's name."
+  name
+  (hash (make-hash-table :test 'equal))
+  (uuidhash (make-hash-table :test 'equal))
+  (parents nil)
+  (direct-keymap (make-sparse-keymap)))
+
+(defun yas--get-template-by-uuid (mode uuid)
+  "Find the snippet template in MODE by its UUID."
+  (let* ((table (gethash mode yas--tables mode)))
+    (when table
+      (gethash uuid (yas--table-uuidhash table)))))
+
+;; Apropos storing/updating in TABLE, this works in two steps:
+;;
+;; 1. `yas--remove-template-by-uuid' removes any
+;;    keyhash-namehash-template mappings from TABLE, grabbing the
+;;    snippet by its uuid. Also removes mappings from TABLE's
+;;    `yas--table-direct-keymap' (FIXME: and should probably take care
+;;    of potentially stale menu bindings right?.)
+;;
+;; 2. `yas--add-template' adds this all over again.
+;;
+;;    Create a new or add to an existing keyhash-namehash mapping.
+;;
+;;  For reference on understanding this, consider three snippet
+;;  definitions:
+;;
+;;  A:   # name: The Foo
+;;       # key: foo
+;;       # binding: C-c M-l
+;;
+;;  B:   # name: Mrs Foo
+;;       # key: foo
+;;
+;;  C:   # name: The Bar
+;;       # binding: C-c M-l
+;;
+;;  D:   # name: Baz
+;;       # key: baz
+;;
+;;  keyhash       namehashes(3)      yas--template structs(4)
+;;  -----------------------------------------------------
+;;                                            __________
+;;                                           /          \
+;;  "foo"      --->  "The Foo" --->  [yas--template A]   |
+;;                   "Mrs Foo" --->  [yas--template B]   |
+;;                                                      |
+;;  [C-c M-l]  --->  "The Foo" -------------------------/
+;;                   "The Bar" --->  [yas--template C]
+;;
+;;  "baz"      --->  "Baz"     --->  [yas--template D]
+;;
+;; Additionally, since uuid defaults to the name, we have a
+;; `yas--table-uuidhash' for TABLE
+;;
+;; uuidhash       yas--template structs
+;; -------------------------------
+;; "The Foo" ---> [yas--template A]
+;; "Mrs Foo" ---> [yas--template B]
+;; "The Bar" ---> [yas--template C]
+;; "Baz"     ---> [yas--template D]
+;;
+;; FIXME: the more I look at this data-structure the more I think I'm
+;; stupid. There has to be an easier way (but beware lots of code
+;; depends on this).
+;;
+(defun yas--remove-template-by-uuid (table uuid)
+  "Remove from TABLE a template identified by UUID."
+  (let ((template (gethash uuid (yas--table-uuidhash table))))
+    (when template
+      (let* ((name                (yas--template-name template))
+             (empty-keys          nil))
+        ;; Remove the name from each of the targeted namehashes
+        ;;
+        (maphash #'(lambda (k v)
+                     (let ((template (gethash name v)))
+                       (when (and template
+                                  (eq uuid (yas--template-uuid template)))
+                         (remhash name v)
+                         (when (zerop (hash-table-count v))
+                           (push k empty-keys)))))
+                 (yas--table-hash table))
+        ;; Remove the namehash themselves if they've become empty
+        ;;
+        (dolist (key empty-keys)
+          (when (vectorp key)
+            (define-key (yas--table-direct-keymap table) key nil))
+          (remhash key (yas--table-hash table)))
+
+        ;; Finally, remove the uuid from the uuidhash
+        ;;
+        (remhash uuid (yas--table-uuidhash table))))))
+
+(defun yas--add-template (table template)
+  "Store in TABLE the snippet template TEMPLATE.
+
+KEY can be a string (trigger key) of a vector (direct
+keybinding)."
+  (let ((name (yas--template-name template))
+        (key (yas--template-key template))
+        (keybinding (yas--template-keybinding template))
+        (_menu-binding-pair (yas--template-menu-binding-pair-get-create template)))
+    (dolist (k (remove nil (list key keybinding)))
+      (puthash name
+               template
+               (or (gethash k
+                            (yas--table-hash table))
+                   (puthash k
+                            (make-hash-table :test 'equal)
+                            (yas--table-hash table))))
+      (when (vectorp k)
+        (define-key (yas--table-direct-keymap table) k 'yas-expand-from-keymap)))
+
+    ;; Update TABLE's `yas--table-uuidhash'
+    (puthash (yas--template-uuid template)
+             template
+             (yas--table-uuidhash table))))
+
+(defun yas--update-template (table template)
+  "Add or update TEMPLATE in TABLE.
+
+Also takes care of adding and updating to the associated menu.
+Return TEMPLATE."
+  ;; Remove from table by uuid
+  ;;
+  (yas--remove-template-by-uuid table (yas--template-uuid template))
+  ;; Add to table again
+  ;;
+  (yas--add-template table template)
+  ;; Take care of the menu
+  ;;
+  (yas--update-template-menu table template)
+  template)
+
+(defun yas--update-template-menu (table template)
+  "Update every menu-related for TEMPLATE."
+  (let ((menu-binding-pair (yas--template-menu-binding-pair-get-create template))
+        (key (yas--template-key template))
+        (keybinding (yas--template-keybinding template)))
+    ;; The snippet might have changed name or keys, so update
+    ;; user-visible strings
+    ;;
+    (unless (eq (cdr menu-binding-pair) :none)
+      ;; the menu item name
+      ;;
+      (setf (cadar menu-binding-pair) (yas--template-name template))
+      ;; the :keys information (also visible to the user)
+      (setf (getf (cdr (car menu-binding-pair)) :keys)
+            (or (and keybinding (key-description keybinding))
+                (and key (concat key yas-trigger-symbol))))))
+  (unless (yas--template-menu-managed-by-yas-define-menu template)
+    (let ((menu-keymap
+           (yas--menu-keymap-get-create (yas--table-mode table)
+                                        (mapcar #'yas--table-mode
+                                                (yas--table-parents table))))
+          (group (yas--template-group template)))
+      ;; Remove from menu keymap
+      ;;
+      (assert menu-keymap)
+      (yas--delete-from-keymap menu-keymap (yas--template-uuid template))
+
+      ;; Add necessary subgroups as necessary.
+      ;;
+      (dolist (subgroup group)
+        (let ((subgroup-keymap (lookup-key menu-keymap (vector (make-symbol subgroup)))))
+          (unless (and subgroup-keymap
+                       (keymapp subgroup-keymap))
+            (setq subgroup-keymap (make-sparse-keymap))
+            (define-key menu-keymap (vector (make-symbol subgroup))
+              `(menu-item ,subgroup ,subgroup-keymap)))
+          (setq menu-keymap subgroup-keymap)))
+
+      ;; Add this entry to the keymap
+      ;;
+      (define-key menu-keymap
+        (vector (make-symbol (yas--template-uuid template)))
+        (car (yas--template-menu-binding-pair template))))))
+
+(defun yas--namehash-templates-alist (namehash)
+  "Return NAMEHASH as an alist."
+  (let (alist)
+    (maphash #'(lambda (k v)
+                 (push (cons k v) alist))
+             namehash)
+    alist))
+
+(defun yas--fetch (table key)
+  "Fetch templates in TABLE by KEY.
+
+Return a list of cons (NAME . TEMPLATE) where NAME is a
+string and TEMPLATE is a `yas--template' structure."
+  (let* ((keyhash (yas--table-hash table))
+         (namehash (and keyhash (gethash key keyhash))))
+    (when namehash
+      (yas--filter-templates-by-condition (yas--namehash-templates-alist namehash)))))
+
+
+;;; Filtering/condition logic
+
+(defun yas--eval-condition (condition)
+  (condition-case err
+      (save-excursion
+        (save-restriction
+          (save-match-data
+            (eval condition))))
+    (error (progn
+             (yas--message 1 "Error in condition evaluation: %s" (error-message-string err))
+             nil))))
+
+
+(defun yas--filter-templates-by-condition (templates)
+  "Filter the templates using the applicable condition.
+
+TEMPLATES is a list of cons (NAME . TEMPLATE) where NAME is a
+string and TEMPLATE is a `yas--template' structure.
+
+This function implements the rules described in
+`yas-buffer-local-condition'.  See that variables documentation."
+  (let ((requirement (yas--require-template-specific-condition-p)))
+    (if (eq requirement 'always)
+        templates
+      (remove-if-not #'(lambda (pair)
+                         (yas--template-can-expand-p
+                          (yas--template-condition (cdr pair)) requirement))
+                     templates))))
+
+(defun yas--require-template-specific-condition-p ()
+  "Decide if this buffer requests/requires snippet-specific
+conditions to filter out potential expansions."
+  (if (eq 'always yas-buffer-local-condition)
+      'always
+    (let ((local-condition (or (and (consp yas-buffer-local-condition)
+                                    (yas--eval-condition yas-buffer-local-condition))
+                               yas-buffer-local-condition)))
+      (when local-condition
+        (if (eq local-condition t)
+            t
+          (and (consp local-condition)
+               (eq 'require-snippet-condition (car local-condition))
+               (symbolp (cdr local-condition))
+               (cdr local-condition)))))))
+
+(defun yas--template-can-expand-p (condition requirement)
+  "Evaluate CONDITION and REQUIREMENT and return a boolean."
+  (let* ((result (or (null condition)
+                     (yas--eval-condition condition))))
+    (cond ((eq requirement t)
+           result)
+          (t
+           (eq requirement result)))))
+
+(defun yas--table-templates (table)
+  (when table
+    (let ((acc (list)))
+      (maphash #'(lambda (_key namehash)
+                   (maphash #'(lambda (name template)
+                                (push (cons name template) acc))
+                            namehash))
+               (yas--table-hash table))
+      (yas--filter-templates-by-condition acc))))
+
+(defun yas--templates-for-key-at-point ()
+  "Find `yas--template' objects for any trigger keys preceding point.
+Returns (TEMPLATES START END). This function respects
+`yas-key-syntaxes', which see."
+  (save-excursion
+    (let ((original (point))
+          (methods yas-key-syntaxes)
+          (templates)
+          (method))
+      (while (and methods
+                  (not templates))
+        (unless (eq method (car methods))
+          ;; TRICKY: `eq'-ness test means we can only be here if
+          ;; `method' is a function that returned `again', and hence
+          ;; don't revert back to original position as per
+          ;; `yas-key-syntaxes'.
+          (goto-char original))
+        (setq method (car methods))
+        (cond ((stringp method)
+               (skip-syntax-backward method)
+               (setq methods (cdr methods)))
+              ((functionp method)
+               (unless (eq (funcall method original)
+                           'again)
+                 (setq methods (cdr methods))))
+              (t
+               (setq methods (cdr methods))
+               (yas--warning "Invalid element `%s' in `yas-key-syntaxes'" method)))
+        (let ((possible-key (buffer-substring-no-properties (point) original)))
+          (save-excursion
+            (goto-char original)
+            (setq templates
+                  (mapcan #'(lambda (table)
+                              (yas--fetch table possible-key))
+                          (yas--get-snippet-tables))))))
+      (when templates
+        (list templates (point) original)))))
+
+(defun yas--table-all-keys (table)
+  "Get trigger keys of all active snippets in TABLE."
+  (let ((acc))
+    (maphash #'(lambda (key namehash)
+                 (when (yas--filter-templates-by-condition (yas--namehash-templates-alist namehash))
+                   (push key acc)))
+             (yas--table-hash table))
+    acc))
+
+(defun yas--table-mode (table)
+  (intern (yas--table-name table)))
+
+
+;;; Internal functions and macros:
+
+(defun yas--handle-error (err)
+  "Handle error depending on value of `yas-good-grace'."
+  (let ((msg (yas--format "elisp error: %s" (error-message-string err))))
+    (if yas-good-grace msg
+      (error "%s" msg))))
+
+(defun yas--eval-lisp (form)
+  "Evaluate FORM and convert the result to string."
+  (let ((retval (catch 'yas--exception
+                  (condition-case err
+                      (save-excursion
+                        (save-restriction
+                          (save-match-data
+                            (widen)
+                            (let ((result (eval form)))
+                              (when result
+                                (format "%s" result))))))
+                    (error (yas--handle-error err))))))
+    (when (and (consp retval)
+               (eq 'yas--exception (car retval)))
+      (error (cdr retval)))
+    retval))
+
+(defun yas--eval-lisp-no-saves (form)
+  (condition-case err
+      (eval form)
+    (error (message "%s" (yas--handle-error err)))))
+
+(defun yas--read-lisp (string &optional nil-on-error)
+  "Read STRING as a elisp expression and return it.
+
+In case STRING in an invalid expression and NIL-ON-ERROR is nil,
+return an expression that when evaluated will issue an error."
+  (condition-case err
+      (read string)
+    (error (and (not nil-on-error)
+                `(error (error-message-string ,err))))))
+
+(defun yas--read-keybinding (keybinding)
+  "Read KEYBINDING as a snippet keybinding, return a vector."
+  (when (and keybinding
+             (not (string-match "keybinding" keybinding)))
+    (condition-case err
+        (let ((res (or (and (string-match "^\\[.*\\]$" keybinding)
+                            (read keybinding))
+                       (read-kbd-macro keybinding 'need-vector))))
+          res)
+      (error
+       (yas--message 3 "warning: keybinding \"%s\" invalid since %s."
+                keybinding (error-message-string err))
+       nil))))
+
+(defun yas--table-get-create (mode)
+  "Get or create the snippet table corresponding to MODE."
+  (let ((table (gethash mode
+                        yas--tables)))
+    (unless table
+      (setq table (yas--make-snippet-table (symbol-name mode)))
+      (puthash mode table yas--tables)
+      (push (cons (intern (format "yas--direct-%s" mode))
+                  (yas--table-direct-keymap table))
+            yas--direct-keymaps))
+    table))
+
+(defun yas--get-snippet-tables (&optional mode)
+  "Get snippet tables for MODE.
+
+MODE defaults to the current buffer's `major-mode'.
+
+Return a list of `yas--table' objects.  The list of modes to
+consider is returned by `yas--modes-to-activate'"
+  (remove nil
+          (mapcar #'(lambda (name)
+                      (gethash name yas--tables))
+                  (yas--modes-to-activate mode))))
+
+(defun yas--menu-keymap-get-create (mode &optional parents)
+  "Get or create the menu keymap for MODE and its PARENTS.
+
+This may very well create a plethora of menu keymaps and arrange
+them all in `yas--menu-table'"
+  (let* ((menu-keymap (or (gethash mode yas--menu-table)
+                          (puthash mode (make-sparse-keymap) yas--menu-table))))
+    (mapc #'yas--menu-keymap-get-create parents)
+    (define-key yas--minor-mode-menu (vector mode)
+        `(menu-item ,(symbol-name mode) ,menu-keymap
+                    :visible (yas--show-menu-p ',mode)))
+    menu-keymap))
+
+
+;;; Template-related and snippet loading functions
+
+(defun yas--parse-template (&optional file)
+  "Parse the template in the current buffer.
+
+Optional FILE is the absolute file name of the file being
+parsed.
+
+Optional GROUP is the group where the template is to go,
+otherwise we attempt to calculate it from FILE.
+
+Return a snippet-definition, i.e. a list
+
+ (KEY TEMPLATE NAME CONDITION GROUP VARS LOAD-FILE KEYBINDING UUID)
+
+If the buffer contains a line of \"# --\" then the contents above
+this line are ignored. Directives can set most of these with the syntax:
+
+# directive-name : directive-value
+
+Here's a list of currently recognized directives:
+
+ * type
+ * name
+ * contributor
+ * condition
+ * group
+ * key
+ * expand-env
+ * binding
+ * uuid"
+  (goto-char (point-min))
+  (let* ((type 'snippet)
+         (name (and file
+                    (file-name-nondirectory file)))
+         (key nil)
+         template
+         bound
+         condition
+         (group (and file
+                     (yas--calculate-group file)))
+         expand-env
+         binding
+         uuid)
+    (if (re-search-forward "^# --\n" nil t)
+        (progn (setq template
+                     (buffer-substring-no-properties (point)
+                                                     (point-max)))
+               (setq bound (point))
+               (goto-char (point-min))
+               (while (re-search-forward "^# *\\([^ ]+?\\) *: *\\(.*?\\)[[:space:]]*$" bound t)
+                 (when (string= "uuid" (match-string-no-properties 1))
+                   (setq uuid (match-string-no-properties 2)))
+                 (when (string= "type" (match-string-no-properties 1))
+                   (setq type (if (string= "command" (match-string-no-properties 2))
+                                  'command
+                                'snippet)))
+                 (when (string= "key" (match-string-no-properties 1))
+                   (setq key (match-string-no-properties 2)))
+                 (when (string= "name" (match-string-no-properties 1))
+                   (setq name (match-string-no-properties 2)))
+                 (when (string= "condition" (match-string-no-properties 1))
+                   (setq condition (yas--read-lisp (match-string-no-properties 2))))
+                 (when (string= "group" (match-string-no-properties 1))
+                   (setq group (match-string-no-properties 2)))
+                 (when (string= "expand-env" (match-string-no-properties 1))
+                   (setq expand-env (yas--read-lisp (match-string-no-properties 2)
+                                                   'nil-on-error)))
+                 (when (string= "binding" (match-string-no-properties 1))
+                   (setq binding (match-string-no-properties 2)))))
+      (setq template
+            (buffer-substring-no-properties (point-min) (point-max))))
+    (unless (or key binding)
+      (setq key (and file (file-name-nondirectory file))))
+    (when (eq type 'command)
+      (setq template (yas--read-lisp (concat "(progn" template ")"))))
+    (when group
+      (setq group (split-string group "\\.")))
+    (list key template name condition group expand-env file binding uuid)))
+
+(defun yas--calculate-group (file)
+  "Calculate the group for snippet file path FILE."
+  (let* ((dominating-dir (locate-dominating-file file
+                                                 ".yas-make-groups"))
+         (extra-path (and dominating-dir
+                          (replace-regexp-in-string (concat "^"
+                                                            (expand-file-name dominating-dir))
+                                                    ""
+                                                    (expand-file-name file))))
+         (extra-dir (and extra-path
+                         (file-name-directory extra-path)))
+         (group (and extra-dir
+                     (replace-regexp-in-string "/"
+                                               "."
+                                               (directory-file-name extra-dir)))))
+    group))
+
+(defun yas--subdirs (directory &optional filep)
+  "Return subdirs or files of DIRECTORY according to FILEP."
+  (remove-if (lambda (file)
+               (or (string-match "^\\."
+                                 (file-name-nondirectory file))
+                   (string-match "^#.*#$"
+                                 (file-name-nondirectory file))
+                   (string-match "~$"
+                                 (file-name-nondirectory file))
+                   (if filep
+                       (file-directory-p file)
+                     (not (file-directory-p file)))))
+             (directory-files directory t)))
+
+(defun yas--make-menu-binding (template)
+  (let ((mode (yas--table-mode (yas--template-table template))))
+    `(lambda () (interactive) (yas--expand-or-visit-from-menu ',mode ,(yas--template-uuid template)))))
+
+(defun yas--expand-or-visit-from-menu (mode uuid)
+  (let* ((table (yas--table-get-create mode))
+         (yas--current-template (and table
+                                    (gethash uuid (yas--table-uuidhash table)))))
+    (when yas--current-template
+      (if yas-visit-from-menu
+          (yas--visit-snippet-file-1 yas--current-template)
+        (let ((where (if (region-active-p)
+                         (cons (region-beginning) (region-end))
+                       (cons (point) (point)))))
+          (yas-expand-snippet (yas--template-content yas--current-template)
+                              (car where)
+                              (cdr where)
+                              (yas--template-expand-env yas--current-template)))))))
+
+(defun yas--key-from-desc (text)
+  "Return a yasnippet key from a description string TEXT."
+  (replace-regexp-in-string "\\(\\w+\\).*" "\\1" text))
+
+
+;;; Popping up for keys and templates
+
+(defun yas--prompt-for-template (templates &optional prompt)
+  "Interactively choose a template from the list TEMPLATES.
+
+TEMPLATES is a list of `yas--template'.
+
+Optional PROMPT sets the prompt to use."
+  (when templates
+    (setq templates
+          (sort templates #'(lambda (t1 t2)
+                              (< (length (yas--template-name t1))
+                                 (length (yas--template-name t2))))))
+    (some #'(lambda (fn)
+              (funcall fn (or prompt "Choose a snippet: ")
+                       templates
+                       #'yas--template-name))
+          yas-prompt-functions)))
+
+(defun yas--prompt-for-keys (keys &optional prompt)
+  "Interactively choose a template key from the list KEYS.
+
+Optional PROMPT sets the prompt to use."
+  (when keys
+    (some #'(lambda (fn)
+              (funcall fn (or prompt "Choose a snippet key: ") keys))
+          yas-prompt-functions)))
+
+(defun yas--prompt-for-table (tables &optional prompt)
+  "Interactively choose a table from the list TABLES.
+
+Optional PROMPT sets the prompt to use."
+  (when tables
+    (some #'(lambda (fn)
+              (funcall fn (or prompt "Choose a snippet table: ")
+                       tables
+                       #'yas--table-name))
+          yas-prompt-functions)))
+
+(defun yas-x-prompt (prompt choices &optional display-fn)
+  "Display choices in a x-window prompt."
+  (when (and window-system choices)
+    ;; Let window position be recalculated to ensure that
+    ;; `posn-at-point' returns non-nil.
+    (redisplay)
+    (or
+     (x-popup-menu
+      (if (fboundp 'posn-at-point)
+          (let ((x-y (posn-x-y (posn-at-point (point)))))
+            (list (list (+ (car x-y) 10)
+                        (+ (cdr x-y) 20))
+                  (selected-window)))
+        t)
+      `(,prompt ("title"
+                 ,@(mapcar* (lambda (c d) `(,(concat "   " d) . ,c))
+                            choices
+                            (if display-fn (mapcar display-fn choices) choices)))))
+     (keyboard-quit))))
+
+(defun yas-maybe-ido-prompt (prompt choices &optional display-fn)
+  (when (bound-and-true-p ido-mode)
+    (yas-ido-prompt prompt choices display-fn)))
+
+(defun yas-ido-prompt (prompt choices &optional display-fn)
+  (require 'ido)
+  (yas-completing-prompt prompt choices display-fn #'ido-completing-read))
+
+(defun yas-dropdown-prompt (_prompt choices &optional display-fn)
+  (when (fboundp 'dropdown-list)
+    (let* ((formatted-choices
+            (if display-fn (mapcar display-fn choices) choices))
+           (n (dropdown-list formatted-choices)))
+      (if n (nth n choices)
+        (keyboard-quit)))))
+
+(defun yas-completing-prompt (prompt choices &optional display-fn completion-fn)
+  (let* ((formatted-choices
+          (if display-fn (mapcar display-fn choices) choices))
+         (chosen (funcall (or completion-fn #'completing-read)
+                          prompt formatted-choices
+                          nil 'require-match nil nil)))
+    (if (eq choices formatted-choices)
+        chosen
+      (nth (or (position chosen formatted-choices :test #'string=) 0)
+           choices))))
+
+(defun yas-no-prompt (_prompt choices &optional _display-fn)
+  (first choices))
+
+
+;;; Defining snippets
+;; This consists of creating and registering `yas--template' objects in the
+;; correct tables.
+;;
+
+(defvar yas--creating-compiled-snippets nil)
+
+(defun yas--define-snippets-1 (snippet snippet-table)
+  "Helper for `yas-define-snippets'."
+  ;; Update the appropriate table.  Also takes care of adding the
+  ;; key indicators in the templates menu entry, if any.
+  (yas--update-template
+   snippet-table (apply #'yas--define-snippets-2 snippet-table snippet)))
+
+(defun yas-define-snippets (mode snippets)
+  "Define SNIPPETS for MODE.
+
+SNIPPETS is a list of snippet definitions, each taking the
+following form
+
+ (KEY TEMPLATE NAME CONDITION GROUP EXPAND-ENV LOAD-FILE KEYBINDING UUID SAVE-FILE)
+
+Within these, only KEY and TEMPLATE are actually mandatory.
+
+TEMPLATE might be a Lisp form or a string, depending on whether
+this is a snippet or a snippet-command.
+
+CONDITION, EXPAND-ENV and KEYBINDING are Lisp forms, they have
+been `yas--read-lisp'-ed and will eventually be
+`yas--eval-lisp'-ed.
+
+The remaining elements are strings.
+
+FILE is probably of very little use if you're programatically
+defining snippets.
+
+UUID is the snippet's \"unique-id\". Loading a second snippet
+file with the same uuid would replace the previous snippet.
+
+You can use `yas--parse-template' to return such lists based on
+the current buffers contents."
+  (if yas--creating-compiled-snippets
+      (let ((print-length nil))
+        (insert ";;; Snippet definitions:\n;;;\n")
+        (dolist (snippet snippets)
+          ;; Fill in missing elements with nil.
+          (setq snippet (append snippet (make-list (- 10 (length snippet)) nil)))
+          ;; Move LOAD-FILE to SAVE-FILE because we will load from the
+          ;; compiled file, not LOAD-FILE.
+          (let ((load-file (nth 6 snippet)))
+            (setcar (nthcdr 6 snippet) nil)
+            (setcar (nthcdr 9 snippet) load-file)))
+        (insert (pp-to-string
+                 `(yas-define-snippets ',mode ',snippets)))
+        (insert "\n\n"))
+    ;; Normal case.
+    (let ((snippet-table (yas--table-get-create mode))
+          (template nil))
+      (dolist (snippet snippets)
+        (setq template (yas--define-snippets-1 snippet
+                                               snippet-table)))
+      template)))
+
+
+;;; Loading snippets from files
+
+(defun yas--template-get-file (template)
+  "Return TEMPLATE's LOAD-FILE or SAVE-FILE."
+  (or (yas--template-load-file template)
+      (let ((file (yas--template-save-file template)))
+        (when file
+          (yas--message 2 "%s has no load file, use save file, %s, instead."
+                        (yas--template-name template) file))
+        file)))
+
+(defun yas--load-yas-setup-file (file)
+  (if (not yas--creating-compiled-snippets)
+      ;; Normal case.
+      (load file 'noerror (<= yas-verbosity 2))
+    (let ((elfile (concat file ".el")))
+      (when (file-exists-p elfile)
+        (insert ";;; contents of the .yas-setup.el support file:\n;;;\n")
+        (insert-file-contents elfile)
+        (goto-char (point-max))))))
+
+(defun yas--define-parents (mode parents)
+  "Add PARENTS to the list of MODE's parents."
+  (puthash mode (remove-duplicates
+                 (append parents
+                         (gethash mode yas--parents)))
+           yas--parents))
+
+(defun yas-load-directory (top-level-dir &optional use-jit interactive)
+  "Load snippets in directory hierarchy TOP-LEVEL-DIR.
+
+Below TOP-LEVEL-DIR each directory should be a mode name.
+
+With prefix argument USE-JIT do jit-loading of snippets."
+  (interactive
+   (list (read-directory-name "Select the root directory: " nil nil t)
+         current-prefix-arg t))
+  (unless yas-snippet-dirs
+    (setq yas-snippet-dirs top-level-dir))
+  (let ((impatient-buffers))
+    (dolist (dir (yas--subdirs top-level-dir))
+      (let* ((major-mode-and-parents (yas--compute-major-mode-and-parents
+                                      (concat dir "/dummy")))
+             (mode-sym (car major-mode-and-parents))
+             (parents (cdr major-mode-and-parents)))
+        ;; Attention: The parents and the menus are already defined
+        ;; here, even if the snippets are later jit-loaded.
+        ;;
+        ;; * We need to know the parents at this point since entering a
+        ;;   given mode should jit load for its parents
+        ;;   immediately. This could be reviewed, the parents could be
+        ;;   discovered just-in-time-as well
+        ;;
+        ;; * We need to create the menus here to support the `full'
+        ;;   option to `yas-use-menu' (all known snippet menus are shown to the user)
+        ;;
+        (yas--define-parents mode-sym parents)
+        (yas--menu-keymap-get-create mode-sym)
+        (let ((fun `(lambda () ;; FIXME: Simulating lexical-binding.
+                      (yas--load-directory-1 ',dir ',mode-sym))))
+          (if use-jit
+              (yas--schedule-jit mode-sym fun)
+            (funcall fun)))
+        ;; Look for buffers that are already in `mode-sym', and so
+        ;; need the new snippets immediately...
+        ;;
+        (when use-jit
+          (cl-loop for buffer in (buffer-list)
+                   do (with-current-buffer buffer
+                        (when (eq major-mode mode-sym)
+                          (yas--message 3 "Discovered there was already %s in %s" buffer mode-sym)
+                          (push buffer impatient-buffers)))))))
+    ;; ...after TOP-LEVEL-DIR has been completely loaded, call
+    ;; `yas--load-pending-jits' in these impatient buffers.
+    ;;
+    (cl-loop for buffer in impatient-buffers
+             do (with-current-buffer buffer (yas--load-pending-jits))))
+  (when interactive
+    (yas--message 3 "Loaded snippets from %s." top-level-dir)))
+
+(defun yas--load-directory-1 (directory mode-sym)
+  "Recursively load snippet templates from DIRECTORY."
+  (if yas--creating-compiled-snippets
+      (let ((output-file (expand-file-name ".yas-compiled-snippets.el"
+                                           directory)))
+        (with-temp-file output-file
+          (insert (format ";;; Compiled snippets and support files for `%s'\n"
+                          mode-sym))
+          (yas--load-directory-2 directory mode-sym)
+          (insert (format ";;; Do not edit! File generated at %s\n"
+                          (current-time-string)))))
+    ;; Normal case.
+    (unless (file-exists-p (concat directory "/" ".yas-skip"))
+      (unless (and (load (expand-file-name ".yas-compiled-snippets" directory) 'noerror (<= yas-verbosity 3))
+                   (progn (yas--message 2 "Loaded compiled snippets from %s" directory) t))
+        (yas--message 2 "Loading snippet files from %s" directory)
+        (yas--load-directory-2 directory mode-sym)))))
+
+(defun yas--load-directory-2 (directory mode-sym)
+  ;; Load .yas-setup.el files wherever we find them
+  ;;
+  (yas--load-yas-setup-file (expand-file-name ".yas-setup" directory))
+  (let* ((default-directory directory)
+         (snippet-defs nil))
+    ;; load the snippet files
+    ;;
+    (with-temp-buffer
+      (dolist (file (yas--subdirs directory 'no-subdirs-just-files))
+        (when (file-readable-p file)
+          (insert-file-contents file nil nil nil t)
+          (push (yas--parse-template file)
+                snippet-defs))))
+    (when snippet-defs
+      (yas-define-snippets mode-sym
+                           snippet-defs))
+    ;; now recurse to a lower level
+    ;;
+    (dolist (subdir (yas--subdirs directory))
+      (yas--load-directory-2 subdir
+                            mode-sym))))
+
+(defun yas--load-snippet-dirs (&optional nojit)
+  "Reload the directories listed in `yas-snippet-dirs' or
+prompt the user to select one."
+  (let (errors)
+    (if (null yas-snippet-dirs)
+        (call-interactively 'yas-load-directory)
+      (when (member yas--default-user-snippets-dir yas-snippet-dirs)
+        (make-directory yas--default-user-snippets-dir t))
+      (dolist (directory (reverse (yas-snippet-dirs)))
+        (cond ((file-directory-p directory)
+               (yas-load-directory directory (not nojit))
+               (if nojit
+                   (yas--message 3 "Loaded %s" directory)
+                 (yas--message 3 "Prepared just-in-time loading for %s" directory)))
+              (t
+               (push (yas--message 0 "Check your `yas-snippet-dirs': %s is not a directory" directory) errors)))))
+    errors))
+
+(defun yas-reload-all (&optional no-jit interactive)
+  "Reload all snippets and rebuild the YASnippet menu.
+
+When NO-JIT is non-nil force immediate reload of all known
+snippets under `yas-snippet-dirs', otherwise use just-in-time
+loading.
+
+When called interactively, use just-in-time loading when given a
+prefix argument."
+  (interactive (list (not current-prefix-arg) t))
+  (catch 'abort
+    (let ((errors)
+          (snippet-editing-buffers
+           (remove-if-not #'(lambda (buffer)
+                              (with-current-buffer buffer yas--editing-template))
+                          (buffer-list))))
+      ;; Warn if there are buffers visiting snippets, since reloading will break
+      ;; any on-line editing of those buffers.
+      ;;
+      (when snippet-editing-buffers
+          (if interactive
+              (if (y-or-n-p "Some buffers editing live snippets, close them and proceed with reload? ")
+                  (mapc #'kill-buffer snippet-editing-buffers)
+                (yas--message 1 "Aborted reload...")
+                (throw 'abort nil))
+            ;; in a non-interactive use, at least set
+            ;; `yas--editing-template' to nil, make it guess it next time around
+            (mapc #'(lambda (buffer)
+                      (with-current-buffer buffer
+                        (kill-local-variable 'yas--editing-template)))
+                  (buffer-list))))
+
+      ;; Empty all snippet tables and parenting info
+      ;;
+      (setq yas--tables (make-hash-table))
+      (setq yas--parents (make-hash-table))
+
+      ;; Before killing `yas--menu-table' use its keys to cleanup the
+      ;; mode menu parts of `yas--minor-mode-menu' (thus also cleaning
+      ;; up `yas-minor-mode-map', which points to it)
+      ;;
+      (maphash #'(lambda (menu-symbol _keymap)
+                   (define-key yas--minor-mode-menu (vector menu-symbol) nil))
+               yas--menu-table)
+      ;; Now empty `yas--menu-table' as well
+      (setq yas--menu-table (make-hash-table))
+
+      ;; Cancel all pending 'yas--scheduled-jit-loads'
+      ;;
+      (setq yas--scheduled-jit-loads (make-hash-table))
+
+      ;; Reload the directories listed in `yas-snippet-dirs' or prompt
+      ;; the user to select one.
+      ;;
+      (setq errors (yas--load-snippet-dirs no-jit))
+      ;; Reload the direct keybindings
+      ;;
+      (yas-direct-keymaps-reload)
+
+      (run-hooks 'yas-after-reload-hook)
+      (yas--message 3 "Reloaded everything%s...%s."
+                   (if no-jit "" " (snippets will load just-in-time)")
+                   (if errors " (some errors, check *Messages*)" "")))))
+
+(defvar yas-after-reload-hook nil
+  "Hooks run after `yas-reload-all'.")
+
+(defun yas--load-pending-jits ()
+  (dolist (mode (yas--modes-to-activate))
+    (let ((funs (reverse (gethash mode yas--scheduled-jit-loads))))
+      ;; must reverse to maintain coherence with `yas-snippet-dirs'
+      (dolist (fun funs)
+        (yas--message  3 "Loading for `%s', just-in-time: %s!" mode fun)
+        (funcall fun))
+      (remhash mode yas--scheduled-jit-loads))))
+
+;; (when (<= emacs-major-version 22)
+;;   (add-hook 'after-change-major-mode-hook 'yas--load-pending-jits))
+
+(defun yas--quote-string (string)
+  "Escape and quote STRING.
+foo\"bar\\! -> \"foo\\\"bar\\\\!\""
+  (concat "\""
+          (replace-regexp-in-string "[\\\"]"
+                                    "\\\\\\&"
+                                    string
+                                    t)
+          "\""))
+
+;;; Snippet compilation function
+
+(defun yas-compile-directory (top-level-dir)
+  "Create .yas-compiled-snippets.el files under subdirs of TOP-LEVEL-DIR.
+
+This works by stubbing a few functions, then calling
+`yas-load-directory'."
+  (interactive "DTop level snippet directory?")
+  (let ((yas--creating-compiled-snippets t))
+    (yas-load-directory top-level-dir nil)))
+
+(defun yas-recompile-all ()
+  "Compile every dir in `yas-snippet-dirs'."
+  (interactive)
+  (mapc #'yas-compile-directory (yas-snippet-dirs)))
+
+
+;;; JIT loading
+;;;
+
+(defvar yas--scheduled-jit-loads (make-hash-table)
+  "Alist of mode-symbols to forms to be evaled when `yas-minor-mode' kicks in.")
+
+(defun yas--schedule-jit (mode fun)
+  (push fun (gethash mode yas--scheduled-jit-loads)))
+
+
+
+;;; Some user level functions
+
+(defun yas-about ()
+  (interactive)
+  (message (concat "yasnippet (version "
+                   yas--version
+                   ") -- pluskid/joaotavora/npostavs")))
+
+
+;;; Apropos snippet menu:
+;;
+;; The snippet menu keymaps are store by mode in hash table called
+;; `yas--menu-table'. They are linked to the main menu in
+;; `yas--menu-keymap-get-create' and are initially created empty,
+;; reflecting the table hierarchy.
+;;
+;; They can be populated in two mutually exclusive ways: (1) by
+;; reading `yas--template-group', which in turn is populated by the "#
+;; group:" directives of the snippets or the ".yas-make-groups" file
+;; or (2) by using a separate `yas-define-menu' call, which declares a
+;; menu structure based on snippets uuids.
+;;
+;; Both situations are handled in `yas--update-template-menu', which
+;; uses the predicate `yas--template-menu-managed-by-yas-define-menu'
+;; that can tell between the two situations.
+;;
+;; Note:
+;;
+;; * if `yas-define-menu' is used it must run before
+;;   `yas-define-snippets' and the UUIDS must match, otherwise we get
+;;   duplicate entries. The `yas--template' objects are created in
+;;   `yas-define-menu', holding nothing but the menu entry,
+;;   represented by a pair of ((menu-item NAME :keys KEYS) TYPE) and
+;;   stored in `yas--template-menu-binding-pair'. The (menu-item ...)
+;;   part is then stored in the menu keymap itself which make the item
+;;   appear to the user. These limitations could probably be revised.
+;;
+;; * The `yas--template-perm-group' slot is only used in
+;;   `yas-describe-tables'.
+;;
+(defun yas--template-menu-binding-pair-get-create (template &optional type)
+  "Get TEMPLATE's menu binding or assign it a new one.
+
+TYPE may be `:stay', signaling this menu binding should be
+static in the menu."
+  (or (yas--template-menu-binding-pair template)
+      (let (;; (key (yas--template-key template))
+            ;; (keybinding (yas--template-keybinding template))
+            )
+        (setf (yas--template-menu-binding-pair template)
+              (cons `(menu-item ,(or (yas--template-name template)
+                                     (yas--template-uuid template))
+                                ,(yas--make-menu-binding template)
+                                :keys ,nil)
+                    type)))))
+(defun yas--template-menu-managed-by-yas-define-menu (template)
+  "Non-nil if TEMPLATE's menu entry was included in a `yas-define-menu' call."
+  (cdr (yas--template-menu-binding-pair template)))
+
+
+(defun yas--show-menu-p (mode)
+  (cond ((eq yas-use-menu 'abbreviate)
+         (find mode
+               (mapcar #'(lambda (table)
+                           (yas--table-mode table))
+                       (yas--get-snippet-tables))))
+        (yas-use-menu t)))
+
+(defun yas--delete-from-keymap (keymap uuid)
+  "Recursively delete items with UUID from KEYMAP and its submenus."
+
+  ;; XXX: This used to skip any submenus named \"parent mode\"
+  ;;
+  ;; First of all, recursively enter submenus, i.e. the tree is
+  ;; searched depth first so that stale submenus can be found in the
+  ;; higher passes.
+  ;;
+  (mapc #'(lambda (item)
+            (when (and (listp (cdr item))
+                       (keymapp (third (cdr item))))
+              (yas--delete-from-keymap (third (cdr item)) uuid)))
+        (rest keymap))
+  ;; Set the uuid entry to nil
+  ;;
+  (define-key keymap (vector (make-symbol uuid)) nil)
+  ;; Destructively modify keymap
+  ;;
+  (setcdr keymap (delete-if #'(lambda (item)
+                                (or (null (cdr item))
+                                    (and (keymapp (third (cdr item)))
+                                         (null (cdr (third (cdr item)))))))
+                            (rest keymap))))
+
+(defun yas-define-menu (mode menu &optional omit-items)
+  "Define a snippet menu for MODE according to MENU, omitting OMIT-ITEMS.
+
+MENU is a list, its elements can be:
+
+- (yas-item UUID) : Creates an entry the snippet identified with
+  UUID.  The menu entry for a snippet thus identified is
+  permanent, i.e. it will never move (be reordered) in the menu.
+
+- (yas-separator) : Creates a separator
+
+- (yas-submenu NAME SUBMENU) : Creates a submenu with NAME,
+  SUBMENU has the same form as MENU.  NAME is also added to the
+  list of groups of the snippets defined thereafter.
+
+OMIT-ITEMS is a list of snippet uuid's that will always be
+omitted from MODE's menu, even if they're manually loaded."
+  (let* ((table (yas--table-get-create mode))
+         (hash (yas--table-uuidhash table)))
+    (yas--define-menu-1 table
+                        (yas--menu-keymap-get-create mode)
+                        menu
+                        hash)
+    (dolist (uuid omit-items)
+      (let ((template (or (gethash uuid hash)
+                          (puthash uuid
+                                   (yas--make-template :table table
+                                                       :uuid uuid)
+                                   hash))))
+        (setf (yas--template-menu-binding-pair template) (cons nil :none))))))
+
+(defun yas--define-menu-1 (table menu-keymap menu uuidhash &optional group-list)
+  "Helper for `yas-define-menu'."
+  (dolist (e (reverse menu))
+    (cond ((eq (first e) 'yas-item)
+           (let ((template (or (gethash (second e) uuidhash)
+                               (puthash (second e)
+                                        (yas--make-template
+                                         :table table
+                                         :perm-group group-list
+                                         :uuid (second e))
+                                        uuidhash))))
+             (define-key menu-keymap (vector (gensym))
+               (car (yas--template-menu-binding-pair-get-create template :stay)))))
+          ((eq (first e) 'yas-submenu)
+           (let ((subkeymap (make-sparse-keymap)))
+             (define-key menu-keymap (vector (gensym))
+               `(menu-item ,(second e) ,subkeymap))
+             (yas--define-menu-1 table
+                                subkeymap
+                                (third e)
+                                uuidhash
+                                (append group-list (list (second e))))))
+          ((eq (first e) 'yas-separator)
+           (define-key menu-keymap (vector (gensym))
+             '(menu-item "----")))
+          (t
+           (yas--message 3 "Don't know anything about menu entry %s" (first e))))))
+
+(defun yas--define (mode key template &optional name condition group)
+  "Define a snippet.  Expanding KEY into TEMPLATE.
+
+NAME is a description to this template.  Also update the menu if
+`yas-use-menu' is t.  CONDITION is the condition attached to
+this snippet.  If you attach a condition to a snippet, then it
+will only be expanded when the condition evaluated to non-nil."
+  (yas-define-snippets mode
+                       (list (list key template name condition group))))
+
+(defun yas-hippie-try-expand (first-time?)
+  "Integrate with hippie expand.
+
+Just put this function in `hippie-expand-try-functions-list'."
+  (when yas-minor-mode
+    (if (not first-time?)
+        (let ((yas-fallback-behavior 'return-nil))
+          (yas-expand))
+      (undo 1)
+      nil)))
+
+
+;;; Apropos condition-cache:
+;;;
+;;;
+;;;
+;;;
+(defvar yas--condition-cache-timestamp nil)
+(defmacro yas-define-condition-cache (func doc &rest body)
+  "Define a function FUNC with doc DOC and body BODY.
+BODY is executed at most once every snippet expansion attempt, to check
+expansion conditions.
+
+It doesn't make any sense to call FUNC programatically."
+  `(defun ,func () ,(if (and doc
+                             (stringp doc))
+                        (concat doc
+"\n\nFor use in snippets' conditions. Within each
+snippet-expansion routine like `yas-expand', computes actual
+value for the first time then always returns a cached value.")
+                      (setq body (cons doc body))
+                      nil)
+     (let ((timestamp-and-value (get ',func 'yas--condition-cache)))
+       (if (equal (car timestamp-and-value) yas--condition-cache-timestamp)
+           (cdr timestamp-and-value)
+         (let ((new-value (progn
+                            ,@body
+                            )))
+           (put ',func 'yas--condition-cache (cons yas--condition-cache-timestamp new-value))
+           new-value)))))
+
+(defalias 'yas-expand 'yas-expand-from-trigger-key)
+(defun yas-expand-from-trigger-key (&optional field)
+  "Expand a snippet before point.
+
+If no snippet expansion is possible, fall back to the behaviour
+defined in `yas-fallback-behavior'.
+
+Optional argument FIELD is for non-interactive use and is an
+object satisfying `yas--field-p' to restrict the expansion to."
+  (interactive)
+  (setq yas--condition-cache-timestamp (current-time))
+  (let (templates-and-pos)
+    (unless (and yas-expand-only-for-last-commands
+                 (not (member last-command yas-expand-only-for-last-commands)))
+      (setq templates-and-pos (if field
+                                  (save-restriction
+                                    (narrow-to-region (yas--field-start field)
+                                                      (yas--field-end field))
+                                    (yas--templates-for-key-at-point))
+                                (yas--templates-for-key-at-point))))
+    (if templates-and-pos
+        (yas--expand-or-prompt-for-template (first templates-and-pos)
+                                            (second templates-and-pos)
+                                            (third templates-and-pos))
+      (yas--fallback))))
+
+(defun yas-expand-from-keymap ()
+  "Directly expand some snippets, searching `yas--direct-keymaps'.
+
+If expansion fails, execute the previous binding for this key"
+  (interactive)
+  (setq yas--condition-cache-timestamp (current-time))
+  (let* ((vec (subseq (this-command-keys-vector) (if current-prefix-arg
+                                                     (length (this-command-keys))
+                                                   0)))
+         (templates (mapcan #'(lambda (table)
+                                (yas--fetch table vec))
+                            (yas--get-snippet-tables))))
+    (if templates
+        (yas--expand-or-prompt-for-template templates)
+      (let ((yas-fallback-behavior 'call-other-command))
+        (yas--fallback)))))
+
+(defun yas--expand-or-prompt-for-template (templates &optional start end)
+  "Expand one of TEMPLATES from START to END.
+
+Prompt the user if TEMPLATES has more than one element, else
+expand immediately.  Common gateway for
+`yas-expand-from-trigger-key' and `yas-expand-from-keymap'."
+  (let ((yas--current-template (or (and (rest templates) ;; more than one
+                                        (yas--prompt-for-template (mapcar #'cdr templates)))
+                                   (cdar templates))))
+    (when yas--current-template
+      (yas-expand-snippet (yas--template-content yas--current-template)
+                          start
+                          end
+                          (yas--template-expand-env yas--current-template)))))
+
+;; Apropos the trigger key and the fallback binding:
+;;
+;; When `yas-minor-mode-map' binds <tab>, that correctly overrides
+;; org-mode's <tab>, for example and searching for fallbacks correctly
+;; returns `org-cycle'. However, most other modes bind "TAB". TODO,
+;; improve this explanation.
+;;
+(defun yas--fallback ()
+  "Fallback after expansion has failed.
+
+Common gateway for `yas-expand-from-trigger-key' and
+`yas-expand-from-keymap'."
+  (cond ((eq yas-fallback-behavior 'return-nil)
+         ;; return nil
+         nil)
+        ((eq yas-fallback-behavior 'yas--fallback)
+         (error (concat "yasnippet fallback loop!\n"
+                        "This can happen when you bind `yas-expand' "
+                        "outside of the `yas-minor-mode-map'.")))
+        ((eq yas-fallback-behavior 'call-other-command)
+         (let* ((yas-fallback-behavior 'yas--fallback)
+                ;; Also bind `yas-minor-mode' to prevent fallback
+                ;; loops when other extensions use mechanisms similar
+                ;; to `yas--keybinding-beyond-yasnippet'. (github #525
+                ;; and #526)
+                ;;
+                (yas-minor-mode nil)
+                (beyond-yasnippet (yas--keybinding-beyond-yasnippet)))
+           (yas--message 4 "Falling back to %s"  beyond-yasnippet)
+           (assert (or (null beyond-yasnippet) (commandp beyond-yasnippet)))
+           (setq this-command beyond-yasnippet)
+           (when beyond-yasnippet
+             (call-interactively beyond-yasnippet))))
+        ((and (listp yas-fallback-behavior)
+              (cdr yas-fallback-behavior)
+              (eq 'apply (car yas-fallback-behavior)))
+         (let ((command-or-fn (cadr yas-fallback-behavior))
+               (args (cddr yas-fallback-behavior))
+               (yas-fallback-behavior 'yas--fallback)
+               (yas-minor-mode nil))
+           (if args
+               (apply command-or-fn args)
+             (when (commandp command-or-fn)
+               (setq this-command command-or-fn)
+               (call-interactively command-or-fn)))))
+        (t
+         ;; also return nil if all the other fallbacks have failed
+         nil)))
+
+(defun yas--keybinding-beyond-yasnippet ()
+  "Get current keys's binding as if YASsnippet didn't exist."
+  (let* ((yas-minor-mode nil)
+         (yas--direct-keymaps nil)
+         (keys (this-single-command-keys)))
+    (or (key-binding keys t)
+        (key-binding (yas--fallback-translate-input keys) t))))
+
+(defun yas--fallback-translate-input (keys)
+  "Emulate `read-key-sequence', at least what I think it does.
+
+Keys should be an untranslated key vector.  Returns a translated
+vector of keys.  FIXME not thoroughly tested."
+  (let ((retval [])
+        (i 0))
+    (while (< i (length keys))
+      (let ((j i)
+            (translated local-function-key-map))
+        (while (and (< j (length keys))
+                    translated
+                    (keymapp translated))
+          (setq translated (cdr (assoc (aref keys j) (remove 'keymap translated)))
+                j (1+ j)))
+        (setq retval (vconcat retval (cond ((symbolp translated)
+                                            `[,translated])
+                                           ((vectorp translated)
+                                            translated)
+                                           (t
+                                            (substring keys i j)))))
+        (setq i j)))
+    retval))
+
+
+;;; Utils for snippet development:
+
+(defun yas--all-templates (tables)
+  "Get `yas--template' objects in TABLES, applicable for buffer and point.
+
+Honours `yas-choose-tables-first', `yas-choose-keys-first' and
+`yas-buffer-local-condition'"
+  (when yas-choose-tables-first
+    (setq tables (list (yas--prompt-for-table tables))))
+  (mapcar #'cdr
+          (if yas-choose-keys-first
+              (let ((key (yas--prompt-for-keys
+                          (mapcan #'yas--table-all-keys tables))))
+                (when key
+                  (mapcan #'(lambda (table)
+                              (yas--fetch table key))
+                          tables)))
+            (remove-duplicates (mapcan #'yas--table-templates tables)
+                               :test #'equal))))
+
+(defun yas--lookup-snippet-1 (name mode)
+  "Get the snippet called NAME in MODE's tables."
+  (let ((yas-choose-tables-first nil)   ; avoid prompts
+        (yas-choose-keys-first nil))
+    (cl-find name (yas--all-templates
+                   (yas--get-snippet-tables mode))
+             :key #'yas--template-name :test #'string=)))
+
+(defun yas-lookup-snippet (name &optional mode noerror)
+  "Get the snippet content for the snippet NAME in MODE's tables.
+
+MODE defaults to the current buffer's `major-mode'.  If NOERROR
+is non-nil, then don't signal an error if there isn't any snippet
+called NAME.
+
+Honours `yas-buffer-local-condition'."
+  (let ((snippet (yas--lookup-snippet-1 name mode)))
+    (cond
+     (snippet (yas--template-content snippet))
+     (noerror nil)
+     (t (error "No snippet named: %s" name)))))
+
+(defun yas-insert-snippet (&optional no-condition)
+  "Choose a snippet to expand, pop-up a list of choices according
+to `yas-prompt-functions'.
+
+With prefix argument NO-CONDITION, bypass filtering of snippets
+by condition."
+  (interactive "P")
+  (setq yas--condition-cache-timestamp (current-time))
+  (let* ((yas-buffer-local-condition (or (and no-condition
+                                              'always)
+                                         yas-buffer-local-condition))
+         (templates (yas--all-templates (yas--get-snippet-tables)))
+         (yas--current-template (and templates
+                                    (or (and (rest templates) ;; more than one template for same key
+                                             (yas--prompt-for-template templates))
+                                        (car templates))))
+         (where (if (region-active-p)
+                    (cons (region-beginning) (region-end))
+                  (cons (point) (point)))))
+    (if yas--current-template
+        (yas-expand-snippet (yas--template-content yas--current-template)
+                            (car where)
+                            (cdr where)
+                            (yas--template-expand-env yas--current-template))
+      (yas--message 3 "No snippets can be inserted here!"))))
+
+(defun yas-visit-snippet-file ()
+  "Choose a snippet to edit, selection like `yas-insert-snippet'.
+
+Only success if selected snippet was loaded from a file.  Put the
+visited file in `snippet-mode'."
+  (interactive)
+  (let* ((yas-buffer-local-condition 'always)
+         (templates (yas--all-templates (yas--get-snippet-tables)))
+         (template (and templates
+                        (or (yas--prompt-for-template templates
+                                                     "Choose a snippet template to edit: ")
+                            (car templates)))))
+
+    (if template
+        (yas--visit-snippet-file-1 template)
+      (message "No snippets tables active!"))))
+
+(defun yas--visit-snippet-file-1 (template)
+  "Helper for `yas-visit-snippet-file'."
+  (let ((file (yas--template-get-file template)))
+    (cond ((and file (file-readable-p file))
+           (find-file-other-window file)
+           (snippet-mode)
+           (set (make-local-variable 'yas--editing-template) template))
+          (file
+           (message "Original file %s no longer exists!" file))
+          (t
+           (switch-to-buffer (format "*%s*"(yas--template-name template)))
+           (let ((type 'snippet))
+             (when (listp (yas--template-content template))
+               (insert (format "# type: command\n"))
+               (setq type 'command))
+             (insert (format "# key: %s\n" (yas--template-key template)))
+             (insert (format "# name: %s\n" (yas--template-name template)))
+             (when (yas--template-keybinding template)
+               (insert (format "# binding: %s\n" (yas--template-keybinding template))))
+             (when (yas--template-expand-env template)
+               (insert (format "# expand-env: %s\n" (yas--template-expand-env template))))
+             (when (yas--template-condition template)
+               (insert (format "# condition: %s\n" (yas--template-condition template))))
+             (insert "# --\n")
+             (insert (if (eq type 'command)
+                         (pp-to-string (yas--template-content template))
+                       (yas--template-content template))))
+           (snippet-mode)
+           (set (make-local-variable 'yas--editing-template) template)))))
+
+(defun yas--guess-snippet-directories-1 (table)
+  "Guess possible snippet subdirectories for TABLE."
+  (cons (yas--table-name table)
+        (mapcan #'(lambda (parent)
+                    (yas--guess-snippet-directories-1
+                     parent))
+                (yas--table-parents table))))
+
+(defun yas--guess-snippet-directories (&optional table)
+  "Try to guess suitable directories based on the current active
+tables (or optional TABLE).
+
+Returns a list of elements (TABLE . DIRS) where TABLE is a
+`yas--table' object and DIRS is a list of all possible directories
+where snippets of table might exist."
+  (let ((main-dir (replace-regexp-in-string
+                   "/+$" ""
+                   (or (first (or (yas-snippet-dirs)
+                                  (setq yas-snippet-dirs (list yas--default-user-snippets-dir)))))))
+        (tables (or (and table
+                         (list table))
+                    (yas--get-snippet-tables))))
+    ;; HACK! the snippet table created here is actually registered!
+    ;;
+    (unless (or table (gethash major-mode yas--tables))
+      (push (yas--table-get-create major-mode)
+            tables))
+
+    (mapcar #'(lambda (table)
+                (cons table
+                      (mapcar #'(lambda (subdir)
+                                  (concat main-dir "/" subdir))
+                              (yas--guess-snippet-directories-1 table))))
+            tables)))
+
+(defun yas--make-directory-maybe (table-and-dirs &optional main-table-string)
+  "Return a dir inside TABLE-AND-DIRS, prompts for creation if none exists."
+  (or (some #'(lambda (dir) (when (file-directory-p dir) dir)) (cdr table-and-dirs))
+      (let ((candidate (first (cdr table-and-dirs))))
+        (unless (file-writable-p (file-name-directory candidate))
+          (error (yas--format "%s is not writable." candidate)))
+        (if (y-or-n-p (format "Guessed directory (%s) for%s%s table \"%s\" does not exist! Create? "
+                              candidate
+                              (if (gethash (yas--table-mode (car table-and-dirs))
+                                           yas--tables)
+                                  ""
+                                " brand new")
+                              (or main-table-string
+                                  "")
+                              (yas--table-name (car table-and-dirs))))
+            (progn
+              (make-directory candidate 'also-make-parents)
+              ;; create the .yas-parents file here...
+              candidate)))))
+
+(defun yas-new-snippet (&optional no-template)
+  "Pops a new buffer for writing a snippet.
+
+Expands a snippet-writing snippet, unless the optional prefix arg
+NO-TEMPLATE is non-nil."
+  (interactive "P")
+  (let ((guessed-directories (yas--guess-snippet-directories)))
+
+    (switch-to-buffer "*new snippet*")
+    (erase-buffer)
+    (kill-all-local-variables)
+    (snippet-mode)
+    (yas-minor-mode 1)
+    (set (make-local-variable 'yas--guessed-modes) (mapcar #'(lambda (d)
+                                                              (yas--table-mode (car d)))
+                                                          guessed-directories))
+    (if (and (not no-template) yas-new-snippet-default)
+        (yas-expand-snippet yas-new-snippet-default))))
+
+(defun yas--compute-major-mode-and-parents (file)
+  "Given FILE, find the nearest snippet directory for a given mode.
+
+Returns a list (MODE-SYM PARENTS), the mode's symbol and a list
+representing one or more of the mode's parents.
+
+Note that MODE-SYM need not be the symbol of a real major mode,
+neither do the elements of PARENTS."
+  (let* ((file-dir (and file
+                        (directory-file-name (or (some #'(lambda (special)
+                                                           (locate-dominating-file file special))
+                                                       '(".yas-setup.el"
+                                                         ".yas-make-groups"
+                                                         ".yas-parents"))
+                                                 (directory-file-name (file-name-directory file))))))
+         (parents-file-name (concat file-dir "/.yas-parents"))
+         (major-mode-name (and file-dir
+                               (file-name-nondirectory file-dir)))
+         (major-mode-sym (or (and major-mode-name
+                                  (intern major-mode-name))))
+         (parents (when (file-readable-p parents-file-name)
+                         (mapcar #'intern
+                                 (split-string
+                                  (with-temp-buffer
+                                    (insert-file-contents parents-file-name)
+                                    (buffer-substring-no-properties (point-min)
+                                                                    (point-max))))))))
+    (when major-mode-sym
+      (cons major-mode-sym (remove major-mode-sym parents)))))
+
+(defvar yas--editing-template nil
+  "Supporting variable for `yas-load-snippet-buffer' and `yas--visit-snippet'.")
+
+(defvar yas--current-template nil
+  "Holds the current template being expanded into a snippet.")
+
+(defvar yas--guessed-modes nil
+  "List of guessed modes supporting `yas-load-snippet-buffer'.")
+
+(defun yas--read-table ()
+  "Ask user for a snippet table, help with some guessing."
+  (let ((prompt (if (and (featurep 'ido)
+                         ido-mode)
+                    'ido-completing-read 'completing-read)))
+    (unless yas--guessed-modes
+      (set (make-local-variable 'yas--guessed-modes)
+           (or (yas--compute-major-mode-and-parents buffer-file-name))))
+    (intern
+     (funcall prompt (format "Choose or enter a table (yas guesses %s): "
+                             (if yas--guessed-modes
+                                 (first yas--guessed-modes)
+                               "nothing"))
+              (mapcar #'symbol-name yas--guessed-modes)
+              nil
+              nil
+              nil
+              nil
+              (if (first yas--guessed-modes)
+                  (symbol-name (first yas--guessed-modes)))))))
+
+(defun yas-load-snippet-buffer (table &optional interactive)
+  "Parse and load current buffer's snippet definition into TABLE.
+
+TABLE is a symbol naming a passed to `yas--table-get-create'.
+
+When called interactively, prompt for the table name."
+  (interactive (list (yas--read-table) t))
+  (cond
+   ;;  We have `yas--editing-template', this buffer's content comes from a
+   ;;  template which is already loaded and neatly positioned,...
+   ;;
+   (yas--editing-template
+    (yas--define-snippets-1 (yas--parse-template (yas--template-load-file yas--editing-template))
+                           (yas--template-table yas--editing-template)))
+   ;; Try to use `yas--guessed-modes'. If we don't have that use the
+   ;; value from `yas--compute-major-mode-and-parents'
+   ;;
+   (t
+    (unless yas--guessed-modes
+      (set (make-local-variable 'yas--guessed-modes) (or (yas--compute-major-mode-and-parents buffer-file-name))))
+    (let* ((table (yas--table-get-create table)))
+      (set (make-local-variable 'yas--editing-template)
+           (yas--define-snippets-1 (yas--parse-template buffer-file-name)
+                                  table)))))
+  (when interactive
+    (yas--message 3 "Snippet \"%s\" loaded for %s."
+                  (yas--template-name yas--editing-template)
+                  (yas--table-name (yas--template-table yas--editing-template)))))
+
+(defun yas-load-snippet-buffer-and-close (table &optional kill)
+  "Load the snippet with `yas-load-snippet-buffer', possibly
+  save, then `quit-window' if saved.
+
+If the snippet is new, ask the user whether (and where) to save
+it. If the snippet already has a file, just save it.
+
+The prefix argument KILL is passed to `quit-window'.
+
+Don't use this from a Lisp program, call `yas-load-snippet-buffer'
+and `kill-buffer' instead."
+  (interactive (list (yas--read-table) current-prefix-arg))
+  (yas-load-snippet-buffer table t)
+  (let ((file (yas--template-get-file yas--editing-template)))
+    (when (and (or
+                ;; Only offer to save this if it looks like a library or new
+                ;; snippet (loaded from elisp, from a dir in `yas-snippet-dirs'
+                ;; which is not the first, or from an unwritable file)
+                ;;
+                (not file)
+                (not (file-writable-p file))
+                (and (cdr-safe yas-snippet-dirs)
+                     (not (string-prefix-p (expand-file-name (car yas-snippet-dirs)) file))))
+               (y-or-n-p (yas--format "Looks like a library or new snippet. Save to new file? ")))
+      (let* ((option (first (yas--guess-snippet-directories (yas--template-table yas--editing-template))))
+             (chosen (and option
+                          (yas--make-directory-maybe option))))
+        (when chosen
+          (let ((default-file-name (or (and file (file-name-nondirectory file))
+                                       (yas--template-name yas--editing-template))))
+            (write-file (concat chosen "/"
+                                (read-from-minibuffer (format "File name to create in %s? " chosen)
+                                                      default-file-name)))
+            (setf (yas--template-load-file yas--editing-template) buffer-file-name))))))
+  (when buffer-file-name
+    (save-buffer)
+    (quit-window kill)))
+
+(defun yas-tryout-snippet (&optional debug)
+  "Test current buffer's snippet template in other buffer."
+  (interactive "P")
+  (let* ((major-mode-and-parent (yas--compute-major-mode-and-parents buffer-file-name))
+         (parsed (yas--parse-template))
+         (test-mode (or (and (car major-mode-and-parent)
+                             (fboundp (car major-mode-and-parent))
+                             (car major-mode-and-parent))
+                        (first yas--guessed-modes)
+                        (intern (read-from-minibuffer (yas--format "Please input a mode: ")))))
+         (yas--current-template
+          (and parsed
+               (fboundp test-mode)
+               (yas--make-template :table       nil ;; no tables for ephemeral snippets
+                                   :key         (first parsed)
+                                   :content     (second parsed)
+                                   :name        (third parsed)
+                                   :expand-env  (sixth parsed)))))
+    (cond (yas--current-template
+           (let ((buffer-name (format "*testing snippet: %s*" (yas--template-name yas--current-template))))
+             (kill-buffer (get-buffer-create buffer-name))
+             (switch-to-buffer (get-buffer-create buffer-name))
+             (setq buffer-undo-list nil)
+             (condition-case nil (funcall test-mode) (error nil))
+	     (yas-minor-mode 1)
+             (setq buffer-read-only nil)
+             (yas-expand-snippet (yas--template-content yas--current-template)
+                                 (point-min)
+                                 (point-max)
+                                 (yas--template-expand-env yas--current-template))
+             (when (and debug
+                        (require 'yasnippet-debug nil t))
+               (add-hook 'post-command-hook 'yas-debug-snippet-vars nil t))))
+          (t
+           (yas--message 3 "Cannot test snippet for unknown major mode")))))
+
+(defun yas-active-keys ()
+  "Return all active trigger keys for current buffer and point."
+  (remove-duplicates
+   (remove-if-not #'stringp (mapcan #'yas--table-all-keys (yas--get-snippet-tables)))
+   :test #'string=))
+
+(defun yas--template-fine-group (template)
+  (car (last (or (yas--template-group template)
+                 (yas--template-perm-group template)))))
+
+(defun yas-describe-tables (&optional choose)
+  "Display snippets for each table."
+  (interactive "P")
+  (let* ((by-name-hash (and choose
+                            (y-or-n-p "Show by namehash? ")))
+         (buffer (get-buffer-create "*YASnippet tables*"))
+         (active-tables (yas--get-snippet-tables))
+         (remain-tables (let ((all))
+                          (maphash #'(lambda (_k v)
+                                       (unless (find v active-tables)
+                                         (push v all)))
+                                   yas--tables)
+                          all))
+         (table-lists (list active-tables remain-tables))
+         (original-buffer (current-buffer))
+         (continue t)
+         (yas--condition-cache-timestamp (current-time)))
+    (with-current-buffer buffer
+      (setq buffer-read-only nil)
+      (erase-buffer)
+      (cond ((not by-name-hash)
+             (insert "YASnippet tables:\n")
+             (while (and table-lists
+                         continue)
+               (dolist (table (car table-lists))
+                 (yas--describe-pretty-table table original-buffer))
+               (setq table-lists (cdr table-lists))
+               (when table-lists
+                 (yas--create-snippet-xrefs)
+                 (display-buffer buffer)
+                 (setq continue (and choose (y-or-n-p "Show also non-active tables? ")))))
+             (yas--create-snippet-xrefs)
+             (help-mode)
+             (goto-char 1))
+            (t
+             (insert "\n\nYASnippet tables by NAMEHASH: \n")
+             (dolist (table (append active-tables remain-tables))
+               (insert (format "\nSnippet table `%s':\n\n" (yas--table-name table)))
+               (let ((keys))
+                 (maphash #'(lambda (k _v)
+                              (push k keys))
+                          (yas--table-hash table))
+                 (dolist (key keys)
+                   (insert (format "   key %s maps snippets: %s\n" key
+                                   (let ((names))
+                                     (maphash #'(lambda (k _v)
+                                                  (push k names))
+                                              (gethash key (yas--table-hash table)))
+                                     names))))))))
+      (goto-char 1)
+      (setq buffer-read-only t))
+    (display-buffer buffer)))
+
+(defun yas--describe-pretty-table (table &optional original-buffer)
+  (insert (format "\nSnippet table `%s'"
+                  (yas--table-name table)))
+  (if (yas--table-parents table)
+      (insert (format " parents: %s\n"
+                      (mapcar #'yas--table-name
+                              (yas--table-parents table))))
+    (insert "\n"))
+  (insert (make-string 100 ?-) "\n")
+  (insert "group                   state name                                    key             binding\n")
+  (let ((groups-hash (make-hash-table :test #'equal)))
+    (maphash #'(lambda (_k v)
+                 (let ((group (or (yas--template-fine-group v)
+                                  "(top level)")))
+                   (when (yas--template-name v)
+                     (puthash group
+                              (cons v (gethash group groups-hash))
+                              groups-hash))))
+             (yas--table-uuidhash table))
+    (maphash
+     #'(lambda (group templates)
+         (setq group (truncate-string-to-width group 25 0 ?  "..."))
+         (insert (make-string 100 ?-) "\n")
+         (dolist (p templates)
+           (let* ((name (truncate-string-to-width (propertize (format "\\\\snippet `%s'" (yas--template-name p))
+                                                              'yasnippet p)
+                                                  50 0 ? "..."))
+                  (group (prog1 group
+                           (setq group (make-string (length group) ? ))))
+                  (condition-string (let ((condition (yas--template-condition p)))
+                                      (if (and condition
+                                               original-buffer)
+                                          (with-current-buffer original-buffer
+                                            (if (yas--eval-condition condition)
+                                                "(y)"
+                                              "(s)"))
+                                        "(a)")))
+                  (key-description-string (key-description (yas--template-keybinding p)))
+                  (template-key-padding (if (string= key-description-string "") nil ? )))
+             (insert group " "
+                     condition-string " "
+                     name (if (string-match "\\.\\.\\.$" name)
+                              "'" " ")
+                     " "
+                     (truncate-string-to-width (or (yas--template-key p) "")
+                                               15 0 template-key-padding "...")
+                     (or template-key-padding "")
+                     (truncate-string-to-width key-description-string
+                                               15 0 nil "...")
+                     "\n"))))
+     groups-hash)))
+
+
+
+;;; User convenience functions, for using in `yas-key-syntaxes'
+
+(defun yas-try-key-from-whitespace (_start-point)
+  "As `yas-key-syntaxes' element, look for whitespace delimited key.
+
+A newline will be considered whitespace even if the mode syntax
+marks it as something else (typically comment ender)."
+  (skip-chars-backward "^[:space:]\n"))
+
+(defun yas-shortest-key-until-whitespace (_start-point)
+  "Like `yas-longest-key-from-whitespace' but take the shortest key."
+  (when (/= (skip-chars-backward "^[:space:]\n" (1- (point))) 0)
+    'again))
+
+(defun yas-longest-key-from-whitespace (start-point)
+  "As `yas-key-syntaxes' element, look for longest key between point and whitespace.
+
+A newline will be considered whitespace even if the mode syntax
+marks it as something else (typically comment ender)."
+  (if (= (point) start-point)
+      (yas-try-key-from-whitespace start-point)
+    (forward-char))
+  (unless (<= start-point (1+ (point)))
+    'again))
+
+
+
+;;; User convenience functions, for using in snippet definitions
+
+(defvar yas-modified-p nil
+  "Non-nil if field has been modified by user or transformation.")
+
+(defvar yas-moving-away-p nil
+  "Non-nil if user is about to exit field.")
+
+(defvar yas-text nil
+  "Contains current field text.")
+
+(defun yas-substr (str pattern &optional subexp)
+  "Search PATTERN in STR and return SUBEXPth match.
+
+If found, the content of subexp group SUBEXP (default 0) is
+  returned, or else the original STR will be returned."
+  (let ((grp (or subexp 0)))
+    (save-match-data
+      (if (string-match pattern str)
+          (match-string-no-properties grp str)
+        str))))
+
+(defun yas-choose-value (&rest possibilities)
+  "Prompt for a string in POSSIBILITIES and return it.
+
+The last element of POSSIBILITIES may be a list of strings."
+  (unless (or yas-moving-away-p
+              yas-modified-p)
+    (let* ((last-link (last possibilities))
+           (last-elem (car last-link)))
+      (when (listp last-elem)
+        (setcar last-link (car last-elem))
+        (setcdr last-link (cdr last-elem))))
+    (some #'(lambda (fn)
+              (funcall fn "Choose: " possibilities))
+          yas-prompt-functions)))
+
+(defun yas-key-to-value (alist)
+  (unless (or yas-moving-away-p
+              yas-modified-p)
+    (let ((key (read-key-sequence "")))
+      (when (stringp key)
+        (or (cdr (find key alist :key #'car :test #'string=))
+            key)))))
+
+(defun yas-throw (text)
+  "Throw a yas--exception with TEXT as the reason."
+  (throw 'yas--exception (cons 'yas--exception text)))
+
+(defun yas-verify-value (possibilities)
+  "Verify that the current field value is in POSSIBILITIES.
+
+Otherwise throw exception."
+  (when (and yas-moving-away-p (notany #'(lambda (pos) (string= pos yas-text)) possibilities))
+    (yas-throw (yas--format "Field only allows %s" possibilities))))
+
+(defun yas-field-value (number)
+  "Get the string for field with NUMBER.
+
+Use this in primary and mirror transformations to tget."
+  (let* ((snippet (car (yas--snippets-at-point)))
+         (field (and snippet
+                     (yas--snippet-find-field snippet number))))
+    (when field
+      (yas--field-text-for-display field))))
+
+(defun yas-text ()
+  "Return `yas-text' if that exists and is non-empty, else nil."
+  (if (and yas-text
+           (not (string= "" yas-text)))
+      yas-text))
+
+(defun yas-selected-text ()
+  "Return `yas-selected-text' if that exists and is non-empty, else nil."
+  (if (and yas-selected-text
+           (not (string= "" yas-selected-text)))
+      yas-selected-text))
+
+(defun yas--get-field-once (number &optional transform-fn)
+  (unless yas-modified-p
+    (if transform-fn
+        (funcall transform-fn (yas-field-value number))
+      (yas-field-value number))))
+
+(defun yas-default-from-field (number)
+  (unless yas-modified-p
+    (yas-field-value number)))
+
+(defun yas-inside-string ()
+  "Return non-nil if the point is inside a string according to font-lock."
+  (equal 'font-lock-string-face (get-char-property (1- (point)) 'face)))
+
+(defun yas-unimplemented (&optional missing-feature)
+  (if yas--current-template
+      (if (y-or-n-p (format "This snippet is unimplemented (missing %s) Visit the snippet definition? "
+                            (or missing-feature
+                                "something")))
+          (yas--visit-snippet-file-1 yas--current-template))
+    (message "No implementation. Missing %s" (or missing-feature "something"))))
+
+
+;;; Snippet expansion and field management
+
+(defvar yas--active-field-overlay nil
+  "Overlays the currently active field.")
+
+(defvar yas--field-protection-overlays nil
+  "Two overlays protect the current active field.")
+
+(defvar yas-selected-text nil
+  "The selected region deleted on the last snippet expansion.")
+
+(defvar yas--start-column nil
+  "The column where the snippet expansion started.")
+
+(make-variable-buffer-local 'yas--active-field-overlay)
+(make-variable-buffer-local 'yas--field-protection-overlays)
+(put 'yas--active-field-overlay 'permanent-local t)
+(put 'yas--field-protection-overlays 'permanent-local t)
+
+(defstruct (yas--snippet (:constructor yas--make-snippet ()))
+  "A snippet.
+
+..."
+  (fields '())
+  (exit nil)
+  (id (yas--snippet-next-id) :read-only t)
+  (control-overlay nil)
+  active-field
+  ;; stacked expansion: the `previous-active-field' slot saves the
+  ;; active field where the child expansion took place
+  previous-active-field
+  force-exit)
+
+(defstruct (yas--field (:constructor yas--make-field (number start end parent-field)))
+  "A field.
+
+NUMBER is the field number.
+START and END are mostly buffer markers, but see \"apropos markers-to-points\".
+PARENT-FIELD is a `yas--field' this field is nested under, or nil.
+MIRRORS is a list of `yas--mirror's
+TRANSFORM is a lisp form.
+MODIFIED-P is a boolean set to true once user inputs text.
+NEXT is another `yas--field' or `yas--mirror' or `yas--exit'.
+"
+  number
+  start end
+  parent-field
+  (mirrors '())
+  (transform nil)
+  (modified-p nil)
+  next)
+
+
+(defstruct (yas--mirror (:constructor yas--make-mirror (start end transform)))
+  "A mirror.
+
+START and END are mostly buffer markers, but see \"apropos markers-to-points\".
+TRANSFORM is a lisp form.
+PARENT-FIELD is a `yas--field' this mirror is nested under, or nil.
+NEXT is another `yas--field' or `yas--mirror' or `yas--exit'
+DEPTH is a count of how many nested mirrors can affect this mirror"
+  start end
+  (transform nil)
+  parent-field
+  next
+  depth)
+
+(defstruct (yas--exit (:constructor yas--make-exit (marker)))
+  marker
+  next)
+
+(defun yas--apply-transform (field-or-mirror field &optional empty-on-nil-p)
+  "Calculate transformed string for FIELD-OR-MIRROR from FIELD.
+
+If there is no transform for ht field, return nil.
+
+If there is a transform but it returns nil, return the empty
+string iff EMPTY-ON-NIL-P is true."
+  (let* ((yas-text (yas--field-text-for-display field))
+         (yas-modified-p (yas--field-modified-p field))
+         (yas-moving-away-p nil)
+         (transform (if (yas--mirror-p field-or-mirror)
+                        (yas--mirror-transform field-or-mirror)
+                      (yas--field-transform field-or-mirror)))
+         (start-point (if (yas--mirror-p field-or-mirror)
+                          (yas--mirror-start field-or-mirror)
+                        (yas--field-start field-or-mirror)))
+         (transformed (and transform
+                           (save-excursion
+                             (goto-char start-point)
+                             (let ((ret (yas--eval-lisp transform)))
+                               (or ret (and empty-on-nil-p "")))))))
+    transformed))
+
+(defsubst yas--replace-all (from to &optional text)
+  "Replace all occurrences from FROM to TO.
+
+With optional string TEXT do it in that string."
+  (if text
+      (replace-regexp-in-string (regexp-quote from) to text t t)
+    (goto-char (point-min))
+    (while (search-forward from nil t)
+      (replace-match to t t text))))
+
+(defun yas--snippet-find-field (snippet number)
+  (find-if #'(lambda (field)
+               (eq number (yas--field-number field)))
+           (yas--snippet-fields snippet)))
+
+(defun yas--snippet-sort-fields (snippet)
+  "Sort the fields of SNIPPET in navigation order."
+  (setf (yas--snippet-fields snippet)
+        (sort (yas--snippet-fields snippet)
+              #'yas--snippet-field-compare)))
+
+(defun yas--snippet-field-compare (field1 field2)
+  "Compare FIELD1 and FIELD2.
+
+The field with a number is sorted first.  If they both have a
+number, compare through the number.  If neither have, compare
+through the field's start point"
+  (let ((n1 (yas--field-number field1))
+        (n2 (yas--field-number field2)))
+    (if n1
+        (if n2
+            (or (zerop n2) (and (not (zerop n1))
+                                (< n1 n2)))
+          (not (zerop n1)))
+      (if n2
+          (zerop n2)
+        (< (yas--field-start field1)
+           (yas--field-start field2))))))
+
+(defun yas--field-probably-deleted-p (snippet field)
+  "Guess if SNIPPET's FIELD should be skipped."
+  (and
+   ;; field must be zero length
+   ;;
+   (zerop (- (yas--field-start field) (yas--field-end field)))
+   ;; field must have been modified
+   ;;
+   (yas--field-modified-p field)
+   ;; either:
+   (or
+    ;;  1) it's a nested field
+    ;;
+    (yas--field-parent-field field)
+    ;;  2) ends just before the snippet end
+    ;;
+    (and (eq field (car (last (yas--snippet-fields snippet))))
+         (= (yas--field-start field) (overlay-end (yas--snippet-control-overlay snippet)))))
+   ;; the field numbered 0, just before the exit marker, should
+   ;; never be skipped
+   ;;
+   (not (and (yas--field-number field)
+             (zerop (yas--field-number field))))))
+
+(defun yas--snippets-at-point (&optional all-snippets)
+  "Return a sorted list of snippets at point.
+
+The most recently-inserted snippets are returned first."
+  (sort
+   (delq nil (delete-dups
+              (mapcar (lambda (ov) (overlay-get ov 'yas--snippet))
+                      (if all-snippets (overlays-in (point-min) (point-max))
+                        (nconc (overlays-at (point))
+                               (overlays-at (1- (point))))))))
+   #'(lambda (s1 s2)
+       (<= (yas--snippet-id s2) (yas--snippet-id s1)))))
+
+(defun yas-next-field-or-maybe-expand ()
+  "Try to expand a snippet at a key before point.
+
+Otherwise delegate to `yas-next-field'."
+  (interactive)
+  (if yas-triggers-in-field
+      (let ((yas-fallback-behavior 'return-nil)
+            (active-field (overlay-get yas--active-field-overlay 'yas--field)))
+        (when active-field
+          (unless (yas-expand-from-trigger-key active-field)
+            (yas-next-field))))
+    (yas-next-field)))
+
+(defun yas-next-field (&optional arg)
+  "Navigate to the ARGth next field.
+
+If there's none, exit the snippet."
+  (interactive)
+  (let* ((arg (or arg
+                  1))
+         (snippet (first (yas--snippets-at-point)))
+         (active-field (overlay-get yas--active-field-overlay 'yas--field))
+         (live-fields (remove-if #'(lambda (field)
+                                     (and (not (eq field active-field))
+                                          (yas--field-probably-deleted-p snippet field)))
+                                 (yas--snippet-fields snippet)))
+         (active-field-pos (position active-field live-fields))
+         (target-pos (and active-field-pos (+ arg active-field-pos)))
+         (target-field (and target-pos (nth target-pos live-fields))))
+    ;; First check if we're moving out of a field with a transform
+    ;;
+    (when (and active-field
+               (yas--field-transform active-field))
+      (let* ((yas-moving-away-p t)
+             (yas-text (yas--field-text-for-display active-field))
+             (yas-modified-p (yas--field-modified-p active-field)))
+        ;; primary field transform: exit call to field-transform
+        (yas--eval-lisp (yas--field-transform active-field))))
+    ;; Now actually move...
+    (cond ((and target-pos (>= target-pos (length live-fields)))
+           (yas-exit-snippet snippet))
+          (target-field
+           (yas--move-to-field snippet target-field))
+          (t
+           nil))))
+
+(defun yas--place-overlays (snippet field)
+  "Correctly place overlays for SNIPPET's FIELD."
+  (yas--make-move-field-protection-overlays snippet field)
+  (yas--make-move-active-field-overlay snippet field))
+
+(defun yas--move-to-field (snippet field)
+  "Update SNIPPET to move to field FIELD.
+
+Also create some protection overlays"
+  (goto-char (yas--field-start field))
+  (yas--place-overlays snippet field)
+  (overlay-put yas--active-field-overlay 'yas--field field)
+  (let ((number (yas--field-number field)))
+    ;; check for the special ${0: ...} field
+    (if (and number (zerop number))
+        (progn
+          (set-mark (yas--field-end field))
+          (setf (yas--snippet-force-exit snippet)
+                (or (yas--field-transform field)
+                    t)))
+      ;; make this field active
+      (setf (yas--snippet-active-field snippet) field)
+      ;; primary field transform: first call to snippet transform
+      (unless (yas--field-modified-p field)
+        (if (yas--field-update-display field)
+            (yas--update-mirrors snippet)
+          (setf (yas--field-modified-p field) nil))))))
+
+(defun yas-prev-field ()
+  "Navigate to prev field.  If there's none, exit the snippet."
+  (interactive)
+  (yas-next-field -1))
+
+(defun yas-abort-snippet (&optional snippet)
+  (interactive)
+  (let ((snippet (or snippet
+                     (car (yas--snippets-at-point)))))
+    (when snippet
+      (setf (yas--snippet-force-exit snippet) t))))
+
+(defun yas-exit-snippet (snippet)
+  "Goto exit-marker of SNIPPET."
+  (interactive (list (first (yas--snippets-at-point))))
+  (when snippet
+    (setf (yas--snippet-force-exit snippet) t)
+    (goto-char (if (yas--snippet-exit snippet)
+                   (yas--exit-marker (yas--snippet-exit snippet))
+                 (overlay-end (yas--snippet-control-overlay snippet))))))
+
+(defun yas-exit-all-snippets ()
+  "Exit all snippets."
+  (interactive)
+  (mapc #'(lambda (snippet)
+            (yas-exit-snippet snippet)
+            (yas--check-commit-snippet))
+        (yas--snippets-at-point 'all-snippets)))
+
+
+;;; Some low level snippet-routines:
+
+(defvar yas--inhibit-overlay-hooks nil
+  "Bind this temporarily to non-nil to prevent running `yas--on-*-modification'.")
+
+(defvar yas-snippet-beg nil "Beginning position of the last snippet committed.")
+(defvar yas-snippet-end nil "End position of the last snippet committed.")
+
+(defun yas--commit-snippet (snippet)
+  "Commit SNIPPET, but leave point as it is.
+
+This renders the snippet as ordinary text."
+
+  (let ((control-overlay (yas--snippet-control-overlay snippet)))
+    ;;
+    ;; Save the end of the moribund snippet in case we need to revive it
+    ;; its original expansion.
+    ;;
+    (when (and control-overlay
+               (overlay-buffer control-overlay))
+      (setq yas-snippet-beg (overlay-start control-overlay))
+      (setq yas-snippet-end (overlay-end control-overlay))
+      (delete-overlay control-overlay))
+
+    (let ((yas--inhibit-overlay-hooks t))
+      (when yas--active-field-overlay
+        (delete-overlay yas--active-field-overlay))
+      (when yas--field-protection-overlays
+        (mapc #'delete-overlay yas--field-protection-overlays)))
+
+    ;; stacked expansion: if the original expansion took place from a
+    ;; field, make sure we advance it here at least to
+    ;; `yas-snippet-end'...
+    ;;
+    (let ((previous-field (yas--snippet-previous-active-field snippet)))
+      (when (and yas-snippet-end previous-field)
+        (yas--advance-end-maybe previous-field yas-snippet-end)))
+
+    ;; Convert all markers to points,
+    ;;
+    (yas--markers-to-points snippet)
+
+    ;; Take care of snippet revival
+    ;;
+    (if yas-snippet-revival
+        (push `(apply yas--snippet-revive ,yas-snippet-beg ,yas-snippet-end ,snippet)
+              buffer-undo-list)
+      ;; Dismember the snippet... this is useful if we get called
+      ;; again from `yas--take-care-of-redo'....
+      (setf (yas--snippet-fields snippet) nil)))
+
+  (yas--message 3 "Snippet %s exited." (yas--snippet-id snippet)))
+
+(defun yas--safely-run-hooks (hook-var)
+  (condition-case error
+      (run-hooks hook-var)
+    (error
+     (yas--message 3 "%s error: %s" hook-var (error-message-string error)))))
+
+
+(defun yas--check-commit-snippet ()
+  "Check if point exited the currently active field of the snippet.
+
+If so cleans up the whole snippet up."
+  (let* ((snippets (yas--snippets-at-point 'all-snippets))
+         (snippets-left snippets)
+         (snippet-exit-transform))
+    (dolist (snippet snippets)
+      (let ((active-field (yas--snippet-active-field snippet)))
+        (setq snippet-exit-transform (yas--snippet-force-exit snippet))
+        (cond ((or snippet-exit-transform
+                   (not (and active-field (yas--field-contains-point-p active-field))))
+               (setq snippets-left (delete snippet snippets-left))
+               (setf (yas--snippet-force-exit snippet) nil)
+               (yas--commit-snippet snippet))
+              ((and active-field
+                    (or (not yas--active-field-overlay)
+                        (not (overlay-buffer yas--active-field-overlay))))
+               ;;
+               ;; stacked expansion: this case is mainly for recent
+               ;; snippet exits that place us back int the field of
+               ;; another snippet
+               ;;
+               (save-excursion
+                 (yas--move-to-field snippet active-field)
+                 (yas--update-mirrors snippet)))
+              (t
+               nil))))
+    (unless (or (null snippets) snippets-left)
+      (if snippet-exit-transform
+          (yas--eval-lisp-no-saves snippet-exit-transform))
+      (yas--safely-run-hooks 'yas-after-exit-snippet-hook))))
+
+;; Apropos markers-to-points:
+;;
+;; This was found useful for performance reasons, so that an
+;; excessive number of live markers aren't kept around in the
+;; `buffer-undo-list'. However, in `markers-to-points', the
+;; set-to-nil markers can't simply be discarded and replaced with
+;; fresh ones in `points-to-markers'. The original marker that was
+;; just set to nil has to be reused.
+;;
+;; This shouldn't bring horrible problems with undo/redo, but it
+;; you never know
+;;
+(defun yas--markers-to-points (snippet)
+  "Convert all markers in SNIPPET to a cons (POINT . MARKER)
+where POINT is the original position of the marker and MARKER is
+the original marker object with the position set to nil."
+  (dolist (field (yas--snippet-fields snippet))
+    (let ((start (marker-position (yas--field-start field)))
+          (end (marker-position (yas--field-end field))))
+      (set-marker (yas--field-start field) nil)
+      (set-marker (yas--field-end field) nil)
+      (setf (yas--field-start field) (cons start (yas--field-start field)))
+      (setf (yas--field-end field) (cons end (yas--field-end field))))
+    (dolist (mirror (yas--field-mirrors field))
+      (let ((start (marker-position (yas--mirror-start mirror)))
+            (end (marker-position (yas--mirror-end mirror))))
+        (set-marker (yas--mirror-start mirror) nil)
+        (set-marker (yas--mirror-end mirror) nil)
+        (setf (yas--mirror-start mirror) (cons start (yas--mirror-start mirror)))
+        (setf (yas--mirror-end mirror) (cons end (yas--mirror-end mirror))))))
+  (let ((snippet-exit (yas--snippet-exit snippet)))
+    (when snippet-exit
+      (let ((exit (marker-position (yas--exit-marker snippet-exit))))
+        (set-marker (yas--exit-marker snippet-exit) nil)
+        (setf (yas--exit-marker snippet-exit) (cons exit (yas--exit-marker snippet-exit)))))))
+
+(defun yas--points-to-markers (snippet)
+  "Convert all cons (POINT . MARKER) in SNIPPET to markers.
+
+This is done by setting MARKER to POINT with `set-marker'."
+  (dolist (field (yas--snippet-fields snippet))
+    (setf (yas--field-start field) (set-marker (cdr (yas--field-start field))
+                                              (car (yas--field-start field))))
+    (setf (yas--field-end field) (set-marker (cdr (yas--field-end field))
+                                            (car (yas--field-end field))))
+    (dolist (mirror (yas--field-mirrors field))
+      (setf (yas--mirror-start mirror) (set-marker (cdr (yas--mirror-start mirror))
+                                                  (car (yas--mirror-start mirror))))
+      (setf (yas--mirror-end mirror) (set-marker (cdr (yas--mirror-end mirror))
+                                                (car (yas--mirror-end mirror))))))
+  (let ((snippet-exit (yas--snippet-exit snippet)))
+    (when snippet-exit
+      (setf (yas--exit-marker snippet-exit) (set-marker (cdr (yas--exit-marker snippet-exit))
+                                                       (car (yas--exit-marker snippet-exit)))))))
+
+(defun yas--field-contains-point-p (field &optional point)
+  (let ((point (or point
+                   (point))))
+    (and (>= point (yas--field-start field))
+         (<= point (yas--field-end field)))))
+
+(defun yas--field-text-for-display (field)
+  "Return the propertized display text for field FIELD."
+  (buffer-substring (yas--field-start field) (yas--field-end field)))
+
+(defun yas--undo-in-progress ()
+  "True if some kind of undo is in progress."
+  (or undo-in-progress
+      (eq this-command 'undo)
+      (eq this-command 'redo)))
+
+(defun yas--make-control-overlay (snippet start end)
+  "Create the control overlay that surrounds the snippet and
+holds the keymap."
+  (let ((overlay (make-overlay start
+                               end
+                               nil
+                               nil
+                               t)))
+    (overlay-put overlay 'keymap yas-keymap)
+    (overlay-put overlay 'priority 100)
+    (overlay-put overlay 'yas--snippet snippet)
+    overlay))
+
+(defun yas-skip-and-clear-or-delete-char (&optional field)
+  "Clears unmodified field if at field start, skips to next tab.
+
+Otherwise deletes a character normally by calling `delete-char'."
+  (interactive)
+  (let ((field (or field
+                   (and yas--active-field-overlay
+                        (overlay-buffer yas--active-field-overlay)
+                        (overlay-get yas--active-field-overlay 'yas--field)))))
+    (cond ((and field
+                (not (yas--field-modified-p field))
+                (eq (point) (marker-position (yas--field-start field))))
+           (yas--skip-and-clear field)
+           (yas-next-field 1))
+          (t
+           (call-interactively 'delete-char)))))
+
+(defun yas--skip-and-clear (field)
+  "Deletes the region of FIELD and sets it's modified state to t."
+  ;; Just before skipping-and-clearing the field, mark its children
+  ;; fields as modified, too. If the children have mirrors-in-fields
+  ;; this prevents them from updating erroneously (we're skipping and
+  ;; deleting!).
+  ;;
+  (yas--mark-this-and-children-modified field)
+  (delete-region (yas--field-start field) (yas--field-end field)))
+
+(defun yas--mark-this-and-children-modified (field)
+  (setf (yas--field-modified-p field) t)
+  (let ((fom (yas--field-next field)))
+    (while (and fom
+                (yas--fom-parent-field fom))
+      (when (and (eq (yas--fom-parent-field fom) field)
+                 (yas--field-p fom))
+        (yas--mark-this-and-children-modified fom))
+      (setq fom (yas--fom-next fom)))))
+
+(defun yas--make-move-active-field-overlay (snippet field)
+  "Place the active field overlay in SNIPPET's FIELD.
+
+Move the overlay, or create it if it does not exit."
+  (if (and yas--active-field-overlay
+           (overlay-buffer yas--active-field-overlay))
+      (move-overlay yas--active-field-overlay
+                    (yas--field-start field)
+                    (yas--field-end field))
+    (setq yas--active-field-overlay
+          (make-overlay (yas--field-start field)
+                        (yas--field-end field)
+                        nil nil t))
+    (overlay-put yas--active-field-overlay 'priority 100)
+    (overlay-put yas--active-field-overlay 'face 'yas-field-highlight-face)
+    (overlay-put yas--active-field-overlay 'yas--snippet snippet)
+    (overlay-put yas--active-field-overlay 'modification-hooks '(yas--on-field-overlay-modification))
+    (overlay-put yas--active-field-overlay 'insert-in-front-hooks
+                 '(yas--on-field-overlay-modification))
+    (overlay-put yas--active-field-overlay 'insert-behind-hooks
+                 '(yas--on-field-overlay-modification))))
+
+(defun yas--skip-and-clear-field-p (field _beg _end &optional _length)
+  "Tell if newly modified FIELD should be cleared and skipped.
+BEG, END and LENGTH like overlay modification hooks."
+  (and (not (yas--field-modified-p field))
+       (= (point) (yas--field-start field))
+       (require 'delsel)
+       ;; `yank' sets `this-command' to t during execution.
+       (let* ((command (if (commandp this-command) this-command
+                         this-original-command))
+              (clearp (if (symbolp command) (get command 'delete-selection))))
+         (when (and (not (memq clearp '(yank supersede kill)))
+                    (functionp clearp))
+           (setq clearp (funcall clearp)))
+         clearp)))
+
+(defun yas--on-field-overlay-modification (overlay after? beg end &optional length)
+  "Clears the field and updates mirrors, conditionally.
+
+Only clears the field if it hasn't been modified and point is at
+field start.  This hook does nothing if an undo is in progress."
+  (unless (or yas--inhibit-overlay-hooks
+              (not (overlayp yas--active-field-overlay)) ; Avoid Emacs bug #21824.
+              (yas--undo-in-progress))
+    (let* ((field (overlay-get overlay 'yas--field))
+           (snippet (overlay-get yas--active-field-overlay 'yas--snippet)))
+      (cond (after?
+             (yas--advance-end-maybe field (overlay-end overlay))
+             (save-excursion
+               (yas--field-update-display field))
+             (yas--update-mirrors snippet))
+            (field
+             (when (yas--skip-and-clear-field-p field beg end)
+               (yas--skip-and-clear field))
+             (setf (yas--field-modified-p field) t))))))
+
+;;; Apropos protection overlays:
+;;
+;; These exist for nasty users who will try to delete parts of the
+;; snippet outside the active field. Actual protection happens in
+;; `yas--on-protection-overlay-modification'.
+;;
+;; As of github #537 this no longer inhibits the command by issuing an
+;; error: all the snippets at point, including nested snippets, are
+;; automatically commited and the current command can proceed.
+;;
+(defun yas--make-move-field-protection-overlays (snippet field)
+  "Place protection overlays surrounding SNIPPET's FIELD.
+
+Move the overlays, or create them if they do not exit."
+  (let ((start (yas--field-start field))
+        (end (yas--field-end field)))
+    ;; First check if the (1+ end) is contained in the buffer,
+    ;; otherwise we'll have to do a bit of cheating and silently
+    ;; insert a newline. the `(1+ (buffer-size))' should prevent this
+    ;; when using stacked expansion
+    ;;
+    (when (< (buffer-size) end)
+      (save-excursion
+        (let ((yas--inhibit-overlay-hooks t))
+          (goto-char (point-max))
+          (newline))))
+    ;; go on to normal overlay creation/moving
+    ;;
+    (cond ((and yas--field-protection-overlays
+                (every #'overlay-buffer yas--field-protection-overlays))
+           (move-overlay (first yas--field-protection-overlays) (1- start) start)
+           (move-overlay (second yas--field-protection-overlays) end (1+ end)))
+          (t
+           (setq yas--field-protection-overlays
+                 (list (make-overlay (1- start) start nil t nil)
+                       (make-overlay end (1+ end) nil t nil)))
+           (dolist (ov yas--field-protection-overlays)
+             (overlay-put ov 'face 'yas--field-debug-face)
+             (overlay-put ov 'yas--snippet snippet)
+             ;; (overlay-put ov 'evaporate t)
+             (overlay-put ov 'modification-hooks '(yas--on-protection-overlay-modification)))))))
+
+(defun yas--on-protection-overlay-modification (_overlay after? _beg _end &optional _length)
+  "Signals a snippet violation, then issues error.
+
+The error should be ignored in `debug-ignored-errors'"
+  (unless (or yas--inhibit-overlay-hooks
+              after?
+              (yas--undo-in-progress))
+    (let ((snippets (yas--snippets-at-point)))
+      (yas--message 3 "Comitting snippets. Action would destroy a protection overlay.")
+      (cl-loop for snippet in snippets
+               do (yas--commit-snippet snippet)))))
+
+(add-to-list 'debug-ignored-errors "^Exit the snippet first!$")
+
+
+;;; Snippet expansion and "stacked" expansion:
+;;
+;; Stacked expansion is when you try to expand a snippet when already
+;; inside a snippet expansion.
+;;
+;; The parent snippet does not run its fields modification hooks
+;; (`yas--on-field-overlay-modification' and
+;; `yas--on-protection-overlay-modification') while the child snippet
+;; is active. This means, among other things, that the mirrors of the
+;; parent snippet are not updated, this only happening when one exits
+;; the child snippet.
+;;
+;; Unfortunately, this also puts some ugly (and not fully-tested)
+;; bits of code in `yas-expand-snippet' and
+;; `yas--commit-snippet'. I've tried to mark them with "stacked
+;; expansion:".
+;;
+;; This was thought to be safer in an undo/redo perspective, but
+;; maybe the correct implementation is to make the globals
+;; `yas--active-field-overlay' and `yas--field-protection-overlays' be
+;; snippet-local and be active even while the child snippet is
+;; running. This would mean a lot of overlay modification hooks
+;; running, but if managed correctly (including overlay priorities)
+;; they should account for all situations...
+;;
+(defun yas-expand-snippet (content &optional start end expand-env)
+  "Expand snippet CONTENT at current point.
+
+Text between START and END will be deleted before inserting
+template.  EXPAND-ENV is a list of (SYM VALUE) let-style dynamic bindings
+considered when expanding the snippet."
+  (cl-assert (and yas-minor-mode
+                  (memq 'yas--post-command-handler post-command-hook))
+             nil
+             "[yas] `yas-expand-snippet' needs properly setup `yas-minor-mode'")
+  (run-hooks 'yas-before-expand-snippet-hook)
+
+  ;;
+  (let* ((yas-selected-text (or yas-selected-text
+                                (and (region-active-p)
+                                     (buffer-substring-no-properties (region-beginning)
+                                                                     (region-end)))))
+         (start (or start
+                    (and (region-active-p)
+                         (region-beginning))
+                    (point)))
+         (end (or end
+                  (and (region-active-p)
+                       (region-end))
+                  (point)))
+         (to-delete (and start
+                         end
+                         (buffer-substring-no-properties start end)))
+         snippet)
+    (goto-char start)
+    (setq yas--indent-original-column (current-column))
+    ;; Delete the region to delete, this *does* get undo-recorded.
+    ;;
+    (when (and to-delete
+               (> end start))
+      (delete-region start end))
+
+    (cond ((listp content)
+           ;; x) This is a snippet-command
+           ;;
+           (yas--eval-lisp-no-saves content))
+          (t
+           ;; x) This is a snippet-snippet :-)
+           ;;
+           ;;    Narrow the region down to the content, shoosh the
+           ;;    `buffer-undo-list', and create the snippet, the new
+           ;;    snippet updates its mirrors once, so we are left with
+           ;;    some plain text.  The undo action for deleting this
+           ;;    plain text will get recorded at the end.
+           ;;
+           ;;    stacked expansion: also shoosh the overlay modification hooks
+           (let ((buffer-undo-list t))
+             ;; snippet creation might evaluate users elisp, which
+             ;; might generate errors, so we have to be ready to catch
+             ;; them mostly to make the undo information
+             ;;
+             (setq yas--start-column (current-column))
+             (let ((yas--inhibit-overlay-hooks t))
+               (setq snippet
+                     (if expand-env
+                         (eval `(let* ,expand-env
+                                  (insert content)
+                                  (yas--snippet-create start (point))))
+                       (insert content)
+                       (yas--snippet-create start (point))))))
+
+           ;; stacked-expansion: This checks for stacked expansion, save the
+           ;; `yas--previous-active-field' and advance its boundary.
+           ;;
+           (let ((existing-field (and yas--active-field-overlay
+                                      (overlay-buffer yas--active-field-overlay)
+                                      (overlay-get yas--active-field-overlay 'yas--field))))
+             (when existing-field
+               (setf (yas--snippet-previous-active-field snippet) existing-field)
+               (yas--advance-end-maybe existing-field (overlay-end yas--active-field-overlay))))
+
+           ;; Exit the snippet immediately if no fields
+           ;;
+           (unless (yas--snippet-fields snippet)
+             (yas-exit-snippet snippet))
+
+           ;; Push two undo actions: the deletion of the inserted contents of
+           ;; the new snippet (without the "key") followed by an apply of
+           ;; `yas--take-care-of-redo' on the newly inserted snippet boundaries
+           ;;
+           ;; A small exception, if `yas-also-auto-indent-first-line'
+           ;; is t and `yas--indent' decides to indent the line to a
+           ;; point before the actual expansion point, undo would be
+           ;; messed up. We call the early point "newstart"".  case,
+           ;; and attempt to fix undo.
+           ;;
+           (let ((newstart (overlay-start (yas--snippet-control-overlay snippet)))
+                 (end (overlay-end (yas--snippet-control-overlay snippet))))
+             (when (< newstart start)
+               (push (cons (make-string (- start newstart) ? ) newstart) buffer-undo-list))
+             (push (cons newstart end) buffer-undo-list)
+             (push `(apply yas--take-care-of-redo ,start ,end ,snippet)
+                   buffer-undo-list))
+           ;; Now, schedule a move to the first field
+           ;;
+           (let ((first-field (car (yas--snippet-fields snippet))))
+             (when first-field
+               (sit-for 0) ;; fix issue 125
+               (yas--move-to-field snippet first-field)))
+           (yas--message 3 "snippet expanded.")
+           t))))
+
+(defun yas--take-care-of-redo (_beg _end snippet)
+  "Commits SNIPPET, which in turn pushes an undo action for reviving it.
+
+Meant to exit in the `buffer-undo-list'."
+  ;; slightly optimize: this action is only needed for snippets with
+  ;; at least one field
+  (when (yas--snippet-fields snippet)
+    (yas--commit-snippet snippet)))
+
+(defun yas--snippet-revive (beg end snippet)
+  "Revives SNIPPET and creates a control overlay from BEG to END.
+
+BEG and END are, we hope, the original snippets boundaries.
+All the markers/points exiting existing inside SNIPPET should point
+to their correct locations *at the time the snippet is revived*.
+
+After revival, push the `yas--take-care-of-redo' in the
+`buffer-undo-list'"
+  ;; Reconvert all the points to markers
+  ;;
+  (yas--points-to-markers snippet)
+  ;; When at least one editable field existed in the zombie snippet,
+  ;; try to revive the whole thing...
+  ;;
+  (let ((target-field (or (yas--snippet-active-field snippet)
+                          (car (yas--snippet-fields snippet)))))
+    (when target-field
+      (setf (yas--snippet-control-overlay snippet) (yas--make-control-overlay snippet beg end))
+      (overlay-put (yas--snippet-control-overlay snippet) 'yas--snippet snippet)
+
+      (yas--move-to-field snippet target-field)
+
+      (push `(apply yas--take-care-of-redo ,beg ,end ,snippet)
+            buffer-undo-list))))
+
+(defun yas--snippet-create (begin end)
+  "Create a snippet from a template inserted at BEGIN to END.
+
+Returns the newly created snippet."
+  (save-restriction
+    (narrow-to-region begin end)
+    (let ((snippet (yas--make-snippet)))
+      (goto-char begin)
+      (yas--snippet-parse-create snippet)
+
+      ;; Sort and link each field
+      (yas--snippet-sort-fields snippet)
+
+      ;; Create keymap overlay for snippet
+      (setf (yas--snippet-control-overlay snippet)
+            (yas--make-control-overlay snippet (point-min) (point-max)))
+
+      ;; Move to end
+      (goto-char (point-max))
+
+      snippet)))
+
+
+;;; Apropos adjacencies and "fom's":
+;;
+;; Once the $-constructs bits like "$n" and "${:n" are deleted in the
+;; recently expanded snippet, we might actually have many fields,
+;; mirrors (and the snippet exit) in the very same position in the
+;; buffer. Therefore we need to single-link the
+;; fields-or-mirrors-or-exit (which I have abbreviated to "fom")
+;; according to their original positions in the buffer.
+;;
+;; Then we have operation `yas--advance-end-maybe' and
+;; `yas--advance-start-maybe', which conditionally push the starts and
+;; ends of these foms down the chain.
+;;
+;; This allows for like the printf with the magic ",":
+;;
+;;   printf ("${1:%s}\\n"${1:$(if (string-match "%" text) "," "\);")}  \
+;;   $2${1:$(if (string-match "%" text) "\);" "")}$0
+;;
+(defun yas--fom-start (fom)
+  (cond ((yas--field-p fom)
+         (yas--field-start fom))
+        ((yas--mirror-p fom)
+         (yas--mirror-start fom))
+        (t
+         (yas--exit-marker fom))))
+
+(defun yas--fom-end (fom)
+  (cond ((yas--field-p fom)
+         (yas--field-end fom))
+        ((yas--mirror-p fom)
+         (yas--mirror-end fom))
+        (t
+         (yas--exit-marker fom))))
+
+(defun yas--fom-next (fom)
+  (cond ((yas--field-p fom)
+         (yas--field-next fom))
+        ((yas--mirror-p fom)
+         (yas--mirror-next fom))
+        (t
+         (yas--exit-next fom))))
+
+(defun yas--fom-parent-field (fom)
+  (cond ((yas--field-p fom)
+         (yas--field-parent-field fom))
+        ((yas--mirror-p fom)
+         (yas--mirror-parent-field fom))
+        (t
+         nil)))
+
+(defun yas--calculate-adjacencies (snippet)
+  "Calculate adjacencies for fields or mirrors of SNIPPET.
+
+This is according to their relative positions in the buffer, and
+has to be called before the $-constructs are deleted."
+  (let* ((fom-set-next-fom
+         (lambda (fom nextfom)
+           (cond ((yas--field-p fom)
+                  (setf (yas--field-next fom) nextfom))
+                 ((yas--mirror-p fom)
+                  (setf (yas--mirror-next fom) nextfom))
+                 (t
+                  (setf (yas--exit-next fom) nextfom)))))
+        (compare-fom-begs
+         (lambda (fom1 fom2)
+           (if (= (yas--fom-start fom2) (yas--fom-start fom1))
+               (yas--mirror-p fom2)
+             (>= (yas--fom-start fom2) (yas--fom-start fom1)))))
+        (link-foms fom-set-next-fom))
+    ;; make some yas--field, yas--mirror and yas--exit soup
+    (let ((soup))
+      (when (yas--snippet-exit snippet)
+        (push (yas--snippet-exit snippet) soup))
+      (dolist (field (yas--snippet-fields snippet))
+        (push field soup)
+        (dolist (mirror (yas--field-mirrors field))
+          (push mirror soup)))
+      (setq soup
+            (sort soup compare-fom-begs))
+      (when soup
+        (reduce link-foms soup)))))
+
+(defun yas--calculate-mirrors-in-fields (snippet mirror)
+  "Attempt to assign a parent field of SNIPPET to the mirror MIRROR.
+
+Use the tightest containing field if more than one field contains
+the mirror.  Intended to be called *before* the dollar-regions are
+deleted."
+  (let ((min (point-min))
+        (max (point-max)))
+    (dolist (field (yas--snippet-fields snippet))
+      (when (and (<= (yas--field-start field) (yas--mirror-start mirror))
+                 (<= (yas--mirror-end mirror) (yas--field-end field))
+               (< min (yas--field-start field))
+               (< (yas--field-end field) max))
+          (setq min (yas--field-start field)
+                max (yas--field-end field))
+          (setf (yas--mirror-parent-field mirror) field)))))
+
+(defun yas--advance-end-maybe (fom newend)
+  "Maybe advance FOM's end to NEWEND if it needs it.
+
+If it does, also:
+
+* call `yas--advance-start-maybe' on FOM's next fom.
+
+* in case FOM is field call `yas--advance-end-maybe' on its parent
+  field
+
+Also, if FOM is an exit-marker, always call
+`yas--advance-start-maybe' on its next fom.  This is because
+exit-marker have identical start and end markers."
+  (cond ((and fom (< (yas--fom-end fom) newend))
+         (set-marker (yas--fom-end fom) newend)
+         (yas--advance-start-maybe (yas--fom-next fom) newend)
+         (yas--advance-end-of-parents-maybe (yas--fom-parent-field fom) newend))
+        ((yas--exit-p fom)
+         (yas--advance-start-maybe (yas--fom-next fom) newend))))
+
+(defun yas--advance-start-maybe (fom newstart)
+  "Maybe advance FOM's start to NEWSTART if it needs it.
+
+If it does, also call `yas--advance-end-maybe' on FOM."
+  (when (and fom (< (yas--fom-start fom) newstart))
+    (set-marker (yas--fom-start fom) newstart)
+    (yas--advance-end-maybe fom newstart)))
+
+(defun yas--advance-end-of-parents-maybe (field newend)
+  "Like `yas--advance-end-maybe' but for parent fields.
+
+Only works for fields and doesn't care about the start of the
+next FOM.  Works its way up recursively for parents of parents."
+  (when (and field
+             (< (yas--field-end field) newend))
+    (set-marker (yas--field-end field) newend)
+    (yas--advance-end-of-parents-maybe (yas--field-parent-field field) newend)))
+
+(defvar yas--dollar-regions nil
+  "When expanding the snippet the \"parse-create\" functions add
+cons cells to this var.")
+
+(defvar yas--backquote-markers-and-strings nil
+  "List of (MARKER . STRING) marking where the values from
+backquoted Lisp expressions should be inserted at the end of
+expansion.")
+
+(defun yas--snippet-parse-create (snippet)
+  "Parse a recently inserted snippet template, creating all
+necessary fields, mirrors and exit points.
+
+Meant to be called in a narrowed buffer, does various passes"
+  (let ((parse-start (point)))
+    ;; Reset the yas--dollar-regions
+    ;;
+    (setq yas--dollar-regions nil)
+    ;; protect just the backquotes
+    ;;
+    (yas--protect-escapes nil '(?`))
+    ;; replace all backquoted expressions
+    ;;
+    (goto-char parse-start)
+    (yas--save-backquotes)
+    ;; protect escaped characters
+    ;;
+    (yas--protect-escapes)
+    ;; parse fields with {}
+    ;;
+    (goto-char parse-start)
+    (yas--field-parse-create snippet)
+    ;; parse simple mirrors and fields
+    ;;
+    (goto-char parse-start)
+    (yas--simple-mirror-parse-create snippet)
+    ;; parse mirror transforms
+    ;;
+    (goto-char parse-start)
+    (yas--transform-mirror-parse-create snippet)
+    ;; calculate adjacencies of fields and mirrors
+    ;;
+    (yas--calculate-adjacencies snippet)
+    ;; Delete $-constructs
+    ;;
+    (save-restriction (widen) (yas--delete-regions yas--dollar-regions))
+    ;; restore backquoted expression values
+    ;;
+    (yas--restore-backquotes)
+    ;; restore escapes
+    ;;
+    (goto-char parse-start)
+    (yas--restore-escapes)
+    ;; update mirrors for the first time
+    ;;
+    (yas--update-mirrors snippet)
+    ;; indent the best we can
+    ;;
+    (goto-char parse-start)
+    (yas--indent snippet)))
+
+(defun yas--indent-according-to-mode (snippet-markers)
+  "Indent current line according to mode, preserving SNIPPET-MARKERS."
+  ;;; Apropos indenting problems....
+  ;;
+  ;; `indent-according-to-mode' uses whatever `indent-line-function'
+  ;; is available. Some implementations of these functions delete text
+  ;; before they insert. If there happens to be a marker just after
+  ;; the text being deleted, the insertion actually happens after the
+  ;; marker, which misplaces it.
+  ;;
+  ;; This would also happen if we had used overlays with the
+  ;; `front-advance' property set to nil.
+  ;;
+  ;; This is why I have these `trouble-markers', they are the ones at
+  ;; they are the ones at the first non-whitespace char at the line
+  ;; (i.e. at `yas--real-line-beginning'. After indentation takes place
+  ;; we should be at the correct to restore them to. All other
+  ;; non-trouble-markers have been *pushed* and don't need special
+  ;; attention.
+  ;;
+  (goto-char (yas--real-line-beginning))
+  (let ((trouble-markers (remove-if-not #'(lambda (marker)
+                                            (= marker (point)))
+                                        snippet-markers)))
+    (save-restriction
+      (widen)
+      (condition-case _
+          (indent-according-to-mode)
+        (error (yas--message 3 "Warning: `yas--indent-according-to-mode' having problems running %s" indent-line-function)
+               nil)))
+    (mapc #'(lambda (marker)
+              (set-marker marker (point)))
+          trouble-markers)))
+
+(defvar yas--indent-original-column nil)
+(defun yas--indent (snippet)
+  (let ((snippet-markers (yas--collect-snippet-markers snippet)))
+    ;; Look for those $>
+    (save-excursion
+      (while (re-search-forward "$>" nil t)
+        (delete-region (match-beginning 0) (match-end 0))
+        (when (not (eq yas-indent-line 'auto))
+          (yas--indent-according-to-mode snippet-markers))))
+    ;; Now do stuff for 'fixed and 'auto
+    (save-excursion
+      (cond ((eq yas-indent-line 'fixed)
+             (while (and (zerop (forward-line))
+                         (zerop (current-column)))
+               (indent-to-column yas--indent-original-column)))
+            ((eq yas-indent-line 'auto)
+             (let ((end (set-marker (make-marker) (point-max)))
+                   (indent-first-line-p yas-also-auto-indent-first-line))
+               (while (and (zerop (if indent-first-line-p
+                                      (prog1
+                                          (forward-line 0)
+                                        (setq indent-first-line-p nil))
+                                    (forward-line 1)))
+                           (not (eobp))
+                           (<= (point) end))
+                 (yas--indent-according-to-mode snippet-markers))))
+            (t
+             nil)))))
+
+(defun yas--collect-snippet-markers (snippet)
+  "Make a list of all the markers used by SNIPPET."
+  (let (markers)
+    (dolist (field (yas--snippet-fields snippet))
+      (push (yas--field-start field) markers)
+      (push (yas--field-end field) markers)
+      (dolist (mirror (yas--field-mirrors field))
+        (push (yas--mirror-start mirror) markers)
+        (push (yas--mirror-end mirror) markers)))
+    (let ((snippet-exit (yas--snippet-exit snippet)))
+      (when (and snippet-exit
+                 (marker-buffer (yas--exit-marker snippet-exit)))
+        (push (yas--exit-marker snippet-exit) markers)))
+    markers))
+
+(defun yas--real-line-beginning ()
+  (let ((c (char-after (line-beginning-position)))
+        (n (line-beginning-position)))
+    (while (or (eql c ?\ )
+               (eql c ?\t))
+      (cl-incf n)
+      (setq c (char-after n)))
+    n))
+
+(defun yas--escape-string (escaped)
+  (concat "YASESCAPE" (format "%d" escaped) "PROTECTGUARD"))
+
+(defun yas--protect-escapes (&optional text escaped)
+  "Protect all escaped characters with their numeric ASCII value.
+
+With optional string TEXT do it in string instead of buffer."
+  (let ((changed-text text)
+        (text-provided-p text))
+    (mapc #'(lambda (escaped)
+              (setq changed-text
+                    (yas--replace-all (concat "\\" (char-to-string escaped))
+                                     (yas--escape-string escaped)
+                                     (when text-provided-p changed-text))))
+          (or escaped yas--escaped-characters))
+    changed-text))
+
+(defun yas--restore-escapes (&optional text escaped)
+  "Restore all escaped characters from their numeric ASCII value.
+
+With optional string TEXT do it in string instead of the buffer."
+  (let ((changed-text text)
+        (text-provided-p text))
+    (mapc #'(lambda (escaped)
+              (setq changed-text
+                    (yas--replace-all (yas--escape-string escaped)
+                                     (char-to-string escaped)
+                                     (when text-provided-p changed-text))))
+          (or escaped yas--escaped-characters))
+    changed-text))
+
+(defun yas--save-backquotes ()
+  "Save all the \"`(lisp-expression)`\"-style expressions
+with their evaluated value into `yas--backquote-markers-and-strings'."
+  (while (re-search-forward yas--backquote-lisp-expression-regexp nil t)
+    (let ((current-string (match-string-no-properties 1)) transformed)
+      (save-restriction (widen)
+                        (delete-region (match-beginning 0) (match-end 0)))
+      (setq transformed (yas--eval-lisp (yas--read-lisp (yas--restore-escapes current-string '(?`)))))
+      (goto-char (match-beginning 0))
+      (when transformed
+        (let ((marker (make-marker)))
+          (save-restriction
+            (widen)
+            (insert "Y") ;; quite horrendous, I love it :)
+            (set-marker marker (point))
+            (insert "Y"))
+          (push (cons marker transformed) yas--backquote-markers-and-strings))))))
+
+(defun yas--restore-backquotes ()
+  "Replace markers in `yas--backquote-markers-and-strings' with their values."
+  (while yas--backquote-markers-and-strings
+    (let* ((marker-and-string (pop yas--backquote-markers-and-strings))
+           (marker (car marker-and-string))
+           (string (cdr marker-and-string)))
+      (save-excursion
+        (goto-char marker)
+        (save-restriction
+          (widen)
+          (delete-char -1)
+          (insert string)
+          (delete-char 1))
+        (set-marker marker nil)))))
+
+(defun yas--scan-sexps (from count)
+  (ignore-errors
+    (save-match-data ; `scan-sexps' may modify match data.
+      (with-syntax-table (standard-syntax-table)
+        (scan-sexps from count)))))
+
+(defun yas--make-marker (pos)
+  "Create a marker at POS with nil `marker-insertion-type'."
+  (let ((marker (set-marker (make-marker) pos)))
+    (set-marker-insertion-type marker nil)
+    marker))
+
+(defun yas--field-parse-create (snippet &optional parent-field)
+  "Parse most field expressions in SNIPPET, except for the simple one \"$n\".
+
+The following count as a field:
+
+* \"${n: text}\", for a numbered field with default text, as long as N is not 0;
+
+* \"${n: text$(expression)}, the same with a Lisp expression;
+  this is caught with the curiously named `yas--multi-dollar-lisp-expression-regexp'
+
+* the same as above but unnumbered, (no N:) and number is calculated automatically.
+
+When multiple expressions are found, only the last one counts."
+  ;;
+  (save-excursion
+    (while (re-search-forward yas--field-regexp nil t)
+      (let* ((real-match-end-0 (yas--scan-sexps (1+ (match-beginning 0)) 1))
+             (number (and (match-string-no-properties 1)
+                          (string-to-number (match-string-no-properties 1))))
+             (brand-new-field (and real-match-end-0
+                                   ;; break if on "$(" immediately
+                                   ;; after the ":", this will be
+                                   ;; caught as a mirror with
+                                   ;; transform later.
+                                   (not (string-match-p "\\`\\$[ \t\n]*("
+                                                        (match-string-no-properties 2)))
+                                   ;; allow ${0: some exit text}
+                                   ;; (not (and number (zerop number)))
+                                   (yas--make-field number
+                                                   (yas--make-marker (match-beginning 2))
+                                                   (yas--make-marker (1- real-match-end-0))
+                                                   parent-field))))
+        (when brand-new-field
+          (goto-char real-match-end-0)
+          (push (cons (1- real-match-end-0) real-match-end-0)
+                yas--dollar-regions)
+          (push (cons (match-beginning 0) (match-beginning 2))
+                yas--dollar-regions)
+          (push brand-new-field (yas--snippet-fields snippet))
+          (save-excursion
+            (save-restriction
+              (narrow-to-region (yas--field-start brand-new-field) (yas--field-end brand-new-field))
+              (goto-char (point-min))
+              (yas--field-parse-create snippet brand-new-field)))))))
+  ;; if we entered from a parent field, now search for the
+  ;; `yas--multi-dollar-lisp-expression-regexp'. This is used for
+  ;; primary field transformations
+  ;;
+  (when parent-field
+    (save-excursion
+      (while (re-search-forward yas--multi-dollar-lisp-expression-regexp nil t)
+        (let* ((real-match-end-1 (yas--scan-sexps (match-beginning 1) 1)))
+          ;; commit the primary field transformation if:
+          ;;
+          ;; 1. we don't find it in yas--dollar-regions (a subnested
+          ;; field) might have already caught it.
+          ;;
+          ;; 2. we really make sure we have either two '$' or some
+          ;; text and a '$' after the colon ':'. This is a FIXME: work
+          ;; my regular expressions and end these ugly hacks.
+          ;;
+          (when (and real-match-end-1
+                     (not (member (cons (match-beginning 0)
+                                        real-match-end-1)
+                                  yas--dollar-regions))
+                     (not (eq ?:
+                              (char-before (1- (match-beginning 1))))))
+            (let ((lisp-expression-string (buffer-substring-no-properties (match-beginning 1)
+                                                                          real-match-end-1)))
+              (setf (yas--field-transform parent-field)
+                    (yas--read-lisp (yas--restore-escapes lisp-expression-string))))
+            (push (cons (match-beginning 0) real-match-end-1)
+                  yas--dollar-regions)))))))
+
+(defun yas--transform-mirror-parse-create (snippet)
+  "Parse the \"${n:$(lisp-expression)}\" mirror transformations in SNIPPET."
+  (while (re-search-forward yas--transform-mirror-regexp nil t)
+    (let* ((real-match-end-0 (yas--scan-sexps (1+ (match-beginning 0)) 1))
+           (number (string-to-number (match-string-no-properties 1)))
+           (field (and number
+                       (not (zerop number))
+                       (yas--snippet-find-field snippet number)))
+           (brand-new-mirror
+            (and real-match-end-0
+                 field
+                 (yas--make-mirror (yas--make-marker (match-beginning 0))
+                                  (yas--make-marker (match-beginning 0))
+                                  (yas--read-lisp
+                                   (yas--restore-escapes
+                                    (buffer-substring-no-properties (match-beginning 2)
+                                                                    (1- real-match-end-0))))))))
+      (when brand-new-mirror
+        (push brand-new-mirror
+              (yas--field-mirrors field))
+        (yas--calculate-mirrors-in-fields snippet brand-new-mirror)
+        (push (cons (match-beginning 0) real-match-end-0) yas--dollar-regions)))))
+
+(defun yas--simple-mirror-parse-create (snippet)
+  "Parse the simple \"$n\" fields/mirrors/exitmarkers in SNIPPET."
+  (while (re-search-forward yas--simple-mirror-regexp nil t)
+    (let ((number (string-to-number (match-string-no-properties 1))))
+      (cond ((zerop number)
+
+             (setf (yas--snippet-exit snippet)
+                   (yas--make-exit (yas--make-marker (match-end 0))))
+             (save-excursion
+               (goto-char (match-beginning 0))
+               (when yas-wrap-around-region
+                 (cond (yas-selected-text
+                        (insert yas-selected-text))
+                       ((and (eq yas-wrap-around-region 'cua)
+                             cua-mode
+                             (get-register ?0))
+                        (insert (prog1 (get-register ?0)
+                                  (set-register ?0 nil))))))
+               (push (cons (point) (yas--exit-marker (yas--snippet-exit snippet)))
+                     yas--dollar-regions)))
+            (t
+             (let ((field (yas--snippet-find-field snippet number)))
+               (if field
+                   (let ((brand-new-mirror (yas--make-mirror
+                                            (yas--make-marker (match-beginning 0))
+                                            (yas--make-marker (match-beginning 0))
+                                            nil)))
+                     (push brand-new-mirror
+                           (yas--field-mirrors field))
+                     (yas--calculate-mirrors-in-fields snippet brand-new-mirror))
+                 (push (yas--make-field number
+                                       (yas--make-marker (match-beginning 0))
+                                       (yas--make-marker (match-beginning 0))
+                                       nil)
+                       (yas--snippet-fields snippet))))
+             (push (cons (match-beginning 0) (match-end 0))
+                   yas--dollar-regions))))))
+
+(defun yas--delete-regions (regions)
+  "Sort disjuct REGIONS by start point, then delete from the back."
+  (mapc #'(lambda (reg)
+            (delete-region (car reg) (cdr reg)))
+        (sort regions
+              #'(lambda (r1 r2)
+                  (>= (car r1) (car r2))))))
+
+(defun yas--calculate-mirror-depth (mirror &optional traversed)
+  (let* ((parent (yas--mirror-parent-field mirror))
+         (parents-mirrors (and parent
+                               (yas--field-mirrors parent))))
+    (or (yas--mirror-depth mirror)
+        (setf (yas--mirror-depth mirror)
+              (cond ((memq mirror traversed)
+                     0)
+                    ((and parent parents-mirrors)
+                     (1+ (reduce #'max
+                                 (mapcar #'(lambda (m)
+                                             (yas--calculate-mirror-depth m
+                                                                          (cons mirror
+                                                                                traversed)))
+                                         parents-mirrors))))
+                    (parent
+                     1)
+                    (t
+                     0))))))
+
+(defun yas--update-mirrors (snippet)
+  "Update all the mirrors of SNIPPET."
+  (save-excursion
+    (dolist (field-and-mirror (sort
+                               ;; make a list of ((F1 . M1) (F1 . M2) (F2 . M3) (F2 . M4) ...)
+                               ;; where F is the field that M is mirroring
+                               ;;
+                               (mapcan #'(lambda (field)
+                                           (mapcar #'(lambda (mirror)
+                                                       (cons field mirror))
+                                                   (yas--field-mirrors field)))
+                                       (yas--snippet-fields snippet))
+                               ;; then sort this list so that entries with mirrors with parent
+                               ;; fields appear before. This was important for fixing #290, and
+                               ;; luckily also handles the case where a mirror in a field causes
+                               ;; another mirror to need reupdating
+                               ;;
+                               #'(lambda (field-and-mirror1 field-and-mirror2)
+                                   (> (yas--calculate-mirror-depth (cdr field-and-mirror1))
+                                      (yas--calculate-mirror-depth (cdr field-and-mirror2))))))
+      (let* ((field (car field-and-mirror))
+             (mirror (cdr field-and-mirror))
+             (parent-field (yas--mirror-parent-field mirror)))
+        ;; before updating a mirror with a parent-field, maybe advance
+        ;; its start (#290)
+        ;;
+        (when parent-field
+          (yas--advance-start-maybe mirror (yas--fom-start parent-field)))
+        ;; update this mirror
+        ;;
+        (yas--mirror-update-display mirror field)
+        ;; `yas--place-overlays' is needed if the active field and
+        ;; protected overlays have been changed because of insertions
+        ;; in `yas--mirror-update-display'
+        ;;
+        (when (eq field (yas--snippet-active-field snippet))
+          (yas--place-overlays snippet field))))))
+
+(defun yas--mirror-update-display (mirror field)
+  "Update MIRROR according to FIELD (and mirror transform)."
+
+  (let* ((mirror-parent-field (yas--mirror-parent-field mirror))
+         (reflection (and (not (and mirror-parent-field
+                                    (yas--field-modified-p mirror-parent-field)))
+                          (or (yas--apply-transform mirror field 'empty-on-nil)
+                              (yas--field-text-for-display field)))))
+    (when (and reflection
+               (not (string= reflection (buffer-substring-no-properties (yas--mirror-start mirror)
+                                                                        (yas--mirror-end mirror)))))
+      (goto-char (yas--mirror-start mirror))
+      (let ((yas--inhibit-overlay-hooks t))
+        (insert reflection))
+      (if (> (yas--mirror-end mirror) (point))
+          (delete-region (point) (yas--mirror-end mirror))
+        (set-marker (yas--mirror-end mirror) (point))
+        (yas--advance-start-maybe (yas--mirror-next mirror) (point))
+        ;; super-special advance
+        (yas--advance-end-of-parents-maybe mirror-parent-field (point))))))
+
+(defun yas--field-update-display (field)
+  "Much like `yas--mirror-update-display', but for fields."
+  (when (yas--field-transform field)
+    (let ((transformed (and (not (eq (yas--field-number field) 0))
+                            (yas--apply-transform field field))))
+      (when (and transformed
+                 (not (string= transformed (buffer-substring-no-properties (yas--field-start field)
+                                                                           (yas--field-end field)))))
+        (setf (yas--field-modified-p field) t)
+        (goto-char (yas--field-start field))
+        (let ((yas--inhibit-overlay-hooks t))
+          (insert transformed)
+          (if (> (yas--field-end field) (point))
+              (delete-region (point) (yas--field-end field))
+            (set-marker (yas--field-end field) (point))
+            (yas--advance-start-maybe (yas--field-next field) (point)))
+          t)))))
+
+
+;;; Post-command hook:
+;;
+(defun yas--post-command-handler ()
+  "Handles various yasnippet conditions after each command."
+  (cond ((eq 'undo this-command)
+         ;;
+         ;; After undo revival the correct field is sometimes not
+         ;; restored correctly, this condition handles that
+         ;;
+         (let* ((snippet (car (yas--snippets-at-point)))
+                (target-field (and snippet
+                                   (find-if-not #'(lambda (field)
+                                                    (yas--field-probably-deleted-p snippet field))
+                                                (remove nil
+                                                        (cons (yas--snippet-active-field snippet)
+                                                              (yas--snippet-fields snippet)))))))
+           (when target-field
+             (yas--move-to-field snippet target-field))))
+        ((not (yas--undo-in-progress))
+         ;; When not in an undo, check if we must commit the snippet
+         ;; (user exited it).
+         (yas--check-commit-snippet))))
+
+;;; Fancy docs:
+;;
+;; The docstrings for some functions are generated dynamically
+;; depending on the context.
+;;
+(put 'yas-expand  'function-documentation
+     '(yas--expand-from-trigger-key-doc t))
+(defun yas--expand-from-trigger-key-doc (context)
+  "A doc synthesizer for `yas--expand-from-trigger-key-doc'."
+  (let* ((yas-fallback-behavior (and context yas-fallback-behavior))
+         (fallback-description
+          (cond ((eq yas-fallback-behavior 'call-other-command)
+                 (let* ((fallback (yas--keybinding-beyond-yasnippet)))
+                   (or (and fallback
+                            (format "call command `%s'."
+                                    (pp-to-string fallback)))
+                       "do nothing (`yas-expand' doesn't override\nanything).")))
+                ((eq yas-fallback-behavior 'return-nil)
+                 "do nothing.")
+                (t "defer to `yas-fallback-behavior' (which see)."))))
+    (concat "Expand a snippet before point. If no snippet
+expansion is possible, "
+            fallback-description
+            "\n\nOptional argument FIELD is for non-interactive use and is an
+object satisfying `yas--field-p' to restrict the expansion to.")))
+
+(put 'yas-expand-from-keymap 'function-documentation
+     '(yas--expand-from-keymap-doc t))
+(defun yas--expand-from-keymap-doc (context)
+  "A doc synthesizer for `yas--expand-from-keymap-doc'."
+  (add-hook 'temp-buffer-show-hook 'yas--snippet-description-finish-runonce)
+  (concat "Expand/run snippets from keymaps, possibly falling back to original binding.\n"
+          (when (and context (eq this-command 'describe-key))
+            (let* ((vec (this-single-command-keys))
+                   (templates (mapcan #'(lambda (table)
+                                          (yas--fetch table vec))
+                                      (yas--get-snippet-tables)))
+                   (yas--direct-keymaps nil)
+                   (fallback (key-binding vec)))
+              (concat "In this case, "
+                      (when templates
+                        (concat "these snippets are bound to this key:\n"
+                                (yas--template-pretty-list templates)
+                                "\n\nIf none of these expands, "))
+                      (or (and fallback
+                               (format "fallback `%s' will be called." (pp-to-string fallback)))
+                          "no fallback keybinding is called."))))))
+
+(defun yas--template-pretty-list (templates)
+  (let ((acc)
+        (yas-buffer-local-condition 'always))
+    (dolist (plate templates)
+      (setq acc (concat acc "\n*) "
+                        (propertize (concat "\\\\snippet `" (car plate) "'")
+                                    'yasnippet (cdr plate)))))
+    acc))
+
+(define-button-type 'help-snippet-def
+  :supertype 'help-xref
+  'help-function (lambda (template) (yas--visit-snippet-file-1 template))
+  'help-echo (purecopy "mouse-2, RET: find snippets's definition"))
+
+(defun yas--snippet-description-finish-runonce ()
+  "Final adjustments for the help buffer when snippets are concerned."
+  (yas--create-snippet-xrefs)
+  (remove-hook 'temp-buffer-show-hook 'yas--snippet-description-finish-runonce))
+
+(defun yas--create-snippet-xrefs ()
+  (save-excursion
+    (goto-char (point-min))
+    (while (search-forward-regexp "\\\\\\\\snippet[ \s\t]+`\\([^']+\\)'" nil t)
+      (let ((template (get-text-property (match-beginning 1)
+                                         'yasnippet)))
+        (when template
+          (help-xref-button 1 'help-snippet-def template)
+          (kill-region (match-end 1) (match-end 0))
+          (kill-region (match-beginning 0) (match-beginning 1)))))))
+
+;;; Utils
+
+(defvar yas-verbosity 4
+  "Log level for `yas--message' 4 means trace most anything, 0 means nothing.")
+
+(defun yas--message (level message &rest args)
+  "When LEVEL is above `yas-verbosity-level', log MESSAGE and ARGS."
+  (when (> yas-verbosity level)
+    (message "%s" (apply #'yas--format message args))))
+
+(defun yas--warning (format-control &rest format-args)
+  (let ((msg (apply #'format format-control format-args)))
+    (display-warning 'yasnippet msg :warning)
+    (yas--message 1 msg)))
+
+(defun yas--format (format-control &rest format-args)
+  (apply #'format (concat "[yas] " format-control) format-args))
+
+
+;;; Some hacks:
+;;
+;; The functions
+;;
+;; `locate-dominating-file'
+;; `region-active-p'
+;;
+;; added for compatibility in emacsen < 23
+(unless (>= emacs-major-version 23)
+  (unless (fboundp 'region-active-p)
+    (defun region-active-p ()  (and transient-mark-mode mark-active)))
+
+  (unless (fboundp 'locate-dominating-file)
+    (defvar locate-dominating-stop-dir-regexp
+      "\\`\\(?:[\\/][\\/][^\\/]+[\\/]\\|/\\(?:net\\|afs\\|\\.\\.\\.\\)/\\)\\'"
+      "Regexp of directory names which stop the search in `locate-dominating-file'.
+Any directory whose name matches this regexp will be treated like
+a kind of root directory by `locate-dominating-file' which will stop its search
+when it bumps into it.
+The default regexp prevents fruitless and time-consuming attempts to find
+special files in directories in which filenames are interpreted as hostnames,
+or mount points potentially requiring authentication as a different user.")
+
+    (defun locate-dominating-file (file name)
+      "Look up the directory hierarchy from FILE for a file named NAME.
+Stop at the first parent directory containing a file NAME,
+and return the directory.  Return nil if not found."
+      ;; We used to use the above locate-dominating-files code, but the
+      ;; directory-files call is very costly, so we're much better off doing
+      ;; multiple calls using the code in here.
+      ;;
+      ;; Represent /home/luser/foo as ~/foo so that we don't try to look for
+      ;; `name' in /home or in /.
+      (setq file (abbreviate-file-name file))
+      (let ((root nil)
+            try)
+        (while (not (or root
+                        (null file)
+                        ;; FIXME: Disabled this heuristic because it is sometimes
+                        ;; inappropriate.
+                        ;; As a heuristic, we stop looking up the hierarchy of
+                        ;; directories as soon as we find a directory belonging
+                        ;; to another user.  This should save us from looking in
+                        ;; things like /net and /afs.  This assumes that all the
+                        ;; files inside a project belong to the same user.
+                        ;; (let ((prev-user user))
+                        ;;   (setq user (nth 2 (file-attributes file)))
+                        ;;   (and prev-user (not (equal user prev-user))))
+                        (string-match locate-dominating-stop-dir-regexp file)))
+          (setq try (file-exists-p (expand-file-name name file)))
+          (cond (try (setq root file))
+                ((equal file (setq file (file-name-directory
+                                         (directory-file-name file))))
+                 (setq file nil))))
+        root))))
+
+
+;;; Backward compatibility to yasnippet <= 0.7
+
+(defun yas-initialize ()
+  "For backward compatibility, enable `yas-minor-mode' globally."
+  (declare (obsolete "Use (yas-global-mode 1) instead." "0.8"))
+  (yas-global-mode 1))
+
+(defvar yas--backported-syms '(;; `defcustom's
+                             ;;
+                             yas-snippet-dirs
+                             yas-prompt-functions
+                             yas-indent-line
+                             yas-also-auto-indent-first-line
+                             yas-snippet-revival
+                             yas-triggers-in-field
+                             yas-fallback-behavior
+                             yas-choose-keys-first
+                             yas-choose-tables-first
+                             yas-use-menu
+                             yas-trigger-symbol
+                             yas-wrap-around-region
+                             yas-good-grace
+                             yas-visit-from-menu
+                             yas-expand-only-for-last-commands
+                             yas-field-highlight-face
+
+                             ;; these vars can be customized as well
+                             ;;
+                             yas-keymap
+                             yas-verbosity
+                             yas-extra-modes
+                             yas-key-syntaxes
+                             yas-after-exit-snippet-hook
+                             yas-before-expand-snippet-hook
+                             yas-buffer-local-condition
+                             yas-dont-activate
+
+                             ;; prompting functions
+                             ;;
+                             yas-x-prompt
+                             yas-ido-prompt
+                             yas-no-prompt
+                             yas-completing-prompt
+                             yas-dropdown-prompt
+
+                             ;; interactive functions
+                             ;;
+                             yas-expand
+                             yas-minor-mode
+                             yas-global-mode
+                             yas-direct-keymaps-reload
+                             yas-minor-mode-on
+                             yas-load-directory
+                             yas-reload-all
+                             yas-compile-directory
+                             yas-recompile-all
+                             yas-about
+                             yas-expand-from-trigger-key
+                             yas-expand-from-keymap
+                             yas-insert-snippet
+                             yas-visit-snippet-file
+                             yas-new-snippet
+                             yas-load-snippet-buffer
+                             yas-tryout-snippet
+                             yas-describe-tables
+                             yas-next-field-or-maybe-expand
+                             yas-next-field
+                             yas-prev-field
+                             yas-abort-snippet
+                             yas-exit-snippet
+                             yas-exit-all-snippets
+                             yas-skip-and-clear-or-delete-char
+                             yas-initialize
+
+                             ;; symbols that I "exported" for use
+                             ;; in snippets and hookage
+                             ;;
+                             yas-expand-snippet
+                             yas-define-snippets
+                             yas-define-menu
+                             yas-snippet-beg
+                             yas-snippet-end
+                             yas-modified-p
+                             yas-moving-away-p
+                             yas-substr
+                             yas-choose-value
+                             yas-key-to-value
+                             yas-throw
+                             yas-verify-value
+                             yas-field-value
+                             yas-text
+                             yas-selected-text
+                             yas-default-from-field
+                             yas-inside-string
+                             yas-unimplemented
+                             yas-define-condition-cache
+                             yas-hippie-try-expand
+
+                             ;; debug definitions
+                             ;; yas-debug-snippet-vars
+                             ;; yas-exterminate-package
+                             ;; yas-debug-test
+
+                             ;; testing definitions
+                             ;; yas-should-expand
+                             ;; yas-should-not-expand
+                             ;; yas-mock-insert
+                             ;; yas-make-file-or-dirs
+                             ;; yas-variables
+                             ;; yas-saving-variables
+                             ;; yas-call-with-snippet-dirs
+                             ;; yas-with-snippet-dirs
+)
+  "Backported yasnippet symbols.
+
+They are mapped to \"yas/*\" variants.")
+
+(dolist (sym yas--backported-syms)
+  (let ((backported (intern (replace-regexp-in-string "^yas-" "yas/" (symbol-name sym)))))
+    (when (boundp sym)
+      (make-obsolete-variable backported sym "yasnippet 0.8")
+      (defvaralias backported sym))
+    (when (fboundp sym)
+      (make-obsolete backported sym "yasnippet 0.8")
+      (defalias backported sym))))
+
+(defvar yas--exported-syms
+  (let (exported)
+    (mapatoms (lambda (atom)
+                (if (and (or (and (boundp atom)
+                                  (not (get atom 'byte-obsolete-variable)))
+                             (and (fboundp atom)
+                                  (not (get atom 'byte-obsolete-info))))
+                         (string-match-p "^yas-[^-]" (symbol-name atom)))
+                    (push atom exported))))
+    exported)
+  "Exported yasnippet symbols.
+
+i.e. the ones with \"yas-\" single dash prefix. I will try to
+keep them in future yasnippet versions and other elisp libraries
+can more or less safely rely upon them.")
+
+
+(provide 'yasnippet)
+;; Local Variables:
+;; coding: utf-8
+;; indent-tabs-mode: nil
+;; byte-compile-warnings: (not cl-functions)
+;; End:
+;;; yasnippet.el ends here