;ELC   
;;; Compiled
;;; in Emacs version 24.5.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307#\210\304\305\310\311#\210\304\312\306\313#\210\304\312\310\314#\207" [require evil-common evil-states evil-repeat put beginning-of-line error-conditions (beginning-of-line error) error-message "Beginning of line" end-of-line (end-of-line error) "End of line"] 4)
#@94 Execute a motion and return the buffer positions.
The return value is a list (BEG END TYPE).
(defalias 'evil-motion-range #[(motion &optional count type) "`\306\307!\310\300!\205 p\311 `\312\223\312#\307\312$%\313\216\314 \210\315\316!\210\214edB&B&\317\320 \321 \"\210\322\216'(\206F \323)\324\"*+\325\326\327\217\210\330	!\204z \331 \203` \332 \202z \333 \203q \334\335 \336 *#\202z \337\340\n`*#!(\203\222 \323	!(=\204\222 \341	(\"\210\337	!\210\342	\312\"\210	.\207" [mark-active range evil-motion-marker obuffer omactive omark mark t boundp make-marker nil ((evil-restore-transient-mark-mode)) evil-save-transient-mark-mode evil-transient-mark 1 evil-narrow field-beginning field-end ((byte-code "\204 	q\210\305\n!\210b\210\f\306\211\223\207" [evil-inhibit-operator obuffer omark opoint evil-motion-marker evil-move-mark nil] 3)) evil-type exclusive err (byte-code "\303\304\"\305	!\203 	\306!\210\307\310\311\217\204 \312 \210\304\305	!\203% 	\313!\210)\307\207" [motion repeat-type quit-flag evil-repeat-type t functionp pre nil (byte-code "\303\304	!)\305\207" [inhibit-quit motion range nil call-interactively t] 2) ((quit (byte-code "\301\302\303!\207" [quit-flag t eval (ignore nil)] 2))) evil-repeat-abort post] 3) ((error (byte-code "\301 \210@\302>\204 \303@A\"\210\202 \304\305!!\210\301\207" [err evil-repeat-abort (end-of-line end-of-buffer) signal message error-message-string] 3))) evil-range-p evil-visual-state-p evil-visual-range region-active-p evil-range region-beginning region-end evil-expand-range evil-normalize evil-set-type evil-set-range-properties opoint evil-transient-vals inhibit-quit evil-restriction-stack count type motion evil-this-type current-prefix-arg] 7 (#$ . 741)])
#@92 Define an motion command MOTION.

(fn MOTION (COUNT ARGS...) DOC [[KEY VALUE]...] BODY...)
(defalias 'evil-define-motion '(macro . #[(motion args &rest body) "\306\211\211\211\211\211\203 \307\310\307\"B\311G\312V\203< \242\242\313=\2044 \242;\203< \211A\242\314	\315\316#\317\242!\203c \211A\242\211A\242\314	\n#\202B \242\242\303=\203u \211A\242A\320\321\322D\323\324\322\325\326\327\322DDEDEE\330\331\f\205\226 \fC	\332\333\303BE$BBBE.\207" [type keys key interactive doc arg nil &optional delq ("<c>") 1 format plist-put :repeat motion keywordp progn when quote eval-after-load 'eldoc and (fboundp 'eldoc-add-command) eldoc-add-command evil-define-command append :keep-visual t args body] 12 (#$ . 2502)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put evil-define-motion lisp-indent-function defun edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] [&optional ("interactive" [&rest form])] def-body)] 4)
#@182 Narrow BODY to the current line.
BODY will signal the errors 'beginning-of-line or 'end-of-line
upon reaching the beginning or end of the current line.

(fn [[KEY VAL]...] BODY...)
(defalias 'evil-narrow-to-line '(macro . #[(&rest body) "\301\302\303\304\305\306\307\310\311\312\313B\314BBBDF\257\207" [body let* ((range (evil-expand (point) (point) 'line)) (beg (evil-range-beginning range)) (end (evil-range-end range)) (min (point-min)) (max (point-max))) (when (save-excursion (goto-char end) (bolp)) (setq end (max beg (1- end)))) (when (and evil-move-cursor-back (not evil-move-beyond-eol) (not (evil-visual-state-p)) (not (evil-operator-state-p))) (setq end (max beg (1- end)))) evil-with-restriction beg end evil-signal-without-movement condition-case err progn ((beginning-of-buffer (if (= beg min) (signal (car err) (cdr err)) (signal 'beginning-of-line nil))) (end-of-buffer (if (= end max) (signal (car err) (cdr err)) (signal 'end-of-line nil))))] 12 (#$ . 3526)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307\310\"\210\306\307\311\"\207" [put evil-narrow-to-line lisp-indent-function defun edebug-form-spec t add-to-list debug-ignored-errors "^Beginning of line$" "^End of line$"] 4)
#@63 Whether point is at end-of-buffer with regard to end-of-line.
(defalias 'evil-eobp #[(&optional pos) "\212\203 b\210m\206/ \301 \204 \302\202/ l\203  \302u\210m\202/ \302u\210m\206/ l\205/ \302u\210m)\207" [pos evil-normal-state-p nil] 1 (#$ . 4751)])
#@290 Move to the beginning of the COUNT next object.
If COUNT is negative, move to the COUNT previous object.
FORWARD is a function which moves to the end of the object, and
BACKWARD is a function which moves to the beginning.
If one is unspecified, the other is used with a negative argument.
(defalias 'evil-move-beginning #[(count forward &optional backward) "\206 \306	\206 \307\n\206 \310`\311W\203: o\203# \312\313\314\"\210\315\216\211\311W\2031 \316\2022 \306\317\320\215+\202w \311V\203v \321 \203J \312\322\314\"\210\212\n\306!\210	\306!\210`)X\203] T\323\216\211\311W\203l \316\202m \306\324\325\215+\202w ,\207" [count backward forward opoint #1=#:countvar #2=#:unitvar 1 #[(count) "	[!\207" [forward count] 2] #[(count) "	[!\207" [backward count] 2] 0 signal beginning-of-buffer nil ((byte-code "\301!\204	 eb\210\301\207" [count zerop] 2)) -1 #3=#:donevar (byte-code "\211	\305U\2040 `\f\306!\210`U\203 \307\310	\"\210)	\305V\203( 	S\202+ 	T	\202 	)\207" [#1# #4=#:loopvar count #5=#:origvar backward 0 1 throw #3#] 4) evil-eobp end-of-buffer ((byte-code "\302!\203 	\303!\210\202 db\210\302\207" [count backward zerop 1] 2)) #6=#:donevar (byte-code "\211	\305U\2040 `\f\306!\210`U\203 \307\310	\"\210)	\305V\203( 	S\202+ 	T	\202 	)\207" [#7=#:countvar #8=#:loopvar count #9=#:origvar forward 0 1 throw #6#] 4) #7# #10=#:unitvar] 4 (#$ . 5014)])
#@416 Move to the end of the COUNT next object.
If COUNT is negative, move to the COUNT previous object.
FORWARD is a function which moves to the end of the object, and
BACKWARD is a function which moves to the beginning.
If one is unspecified, the other is used with a negative argument.
If INCLUSIVE is non-nil, then point is placed at the last character
of the object; otherwise it is placed at the end of the object.
(defalias 'evil-move-end #[(count forward &optional backward inclusive) "\206 \306	\206 \307\n\206 \310`\311W\203W o\203# \312\313\314\"\210\212	\306!\210\n\306!\210`)\f\2037 T\2028 Y\203? S\315\216\211\311W\203M \316\202N \306\317\320\215+\202\210 \311V\203\207 \321 \203g \312\322\314\"\210\f\203n \314u\210\323\216\211\311W\203} \316\202~ \306\324\325\215+\202\210 ,\207" [count backward forward opoint inclusive #1=#:countvar 1 #[(count) "	[!\207" [forward count] 2] #[(count) "	[!\207" [backward count] 2] 0 signal beginning-of-buffer nil ((byte-code "\303!\204\f eb\210\202) 	\304!\210\n\203 o\204 \305u\210\306 \204% \307 \203) \310\311!\210\303\207" [count forward inclusive zerop 1 -1 evil-normal-state-p evil-motion-state-p evil-adjust-cursor t] 2)) -1 #2=#:donevar (byte-code "\211	\305U\2040 `\f\306!\210`U\203 \307\310	\"\210)	\305V\203( 	S\202+ 	T	\202 	)\207" [#1# #3=#:loopvar count #4=#:origvar backward 0 1 throw #2#] 4) evil-eobp end-of-buffer ((byte-code "\302!\204\f db\210\202% 	\203 o\204 \303u\210\304 \204! \305 \203% \306\307!\210\302\207" [count inclusive zerop -1 evil-normal-state-p evil-motion-state-p evil-adjust-cursor t] 2)) #5=#:donevar (byte-code "\211	\305U\2040 `\f\306!\210`U\203 \307\310	\"\210)	\305V\203( 	S\202+ 	T	\202 	)\207" [#6=#:countvar #7=#:loopvar count #8=#:origvar forward 0 1 throw #5#] 4) #9=#:unitvar #6# #10=#:unitvar] 4 (#$ . 6424)])
#@204 Define a text object command OBJECT.
BODY should return a range (BEG END) to the right of point
if COUNT is positive, and to the left of it if negative.

(fn OBJECT (COUNT) DOC [[KEY VALUE]...] BODY...)
(defalias 'evil-define-text-object '(macro . #[(object args &rest body) "\306\307\"\211\211A\242\206 \301\205 \307B\310\311\211\311\211./\242;\2031 /\211A/\242\312.\313\314#.\315/\242!\203\\ /\211A/\242/\211A/\242\312.#.\2029 /\242\242\302=\203n /\211A/\242C\3160	B\317\f\205{ \fC.\n\320	\321	\322BBE\323\324	\325BB\326\327\330\3310D\332BBD\333\334\335\336\3310D\313\331\337.\313\"DFED\340BB\341\342\320\343\344	\345	\346BB\257\320\347\350/BE\351BBB\314\320\347\350/BE\352\353\320	\354	D\347\350/B\257E\355BBBEEED$.BBB\207" [args count interactive arg doc key delq &optional ((interactive "<c><v>")) nil plist-put :extend-selection t keywordp evil-define-motion append setq or (1) when /= (0) let type evil-type quote (evil-visual-char) extend and (evil-visual-state-p) evil-get-command-property plist-get ((dir evil-visual-direction) mark point range selection) cond (and (evil-visual-state-p) (evil-called-interactively-p)) dir evil-visual-direction * (dir) range progn ((when (evil-range-p range) (setq range (evil-expand-range range)) (evil-set-type range (evil-type range type)) (setq range (evil-contract-range range)) (setq mark (evil-range-beginning range) point (evil-range-end range) type (evil-type range)) (when (< dir 0) (evil-swap mark point)) (evil-visual-make-selection mark point type))) unless (evil-range-p range) - ((when (evil-range-p range) (setq selection (evil-range (point) (point) type)) (if extend (setq range (evil-range-union range selection)) (evil-set-type range (evil-type range type))) (evil-contract-range range) (evil-expand-range range) (evil-set-range-properties range nil) range)) keys body object] 25 (#$ . 8289)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put evil-define-text-object lisp-indent-function defun edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] def-body)] 4)
#@100 Define an operator command OPERATOR.

(fn OPERATOR (BEG END ARGS...) DOC [[KEY VALUE]...] BODY...)
(defalias 'evil-define-operator '(macro . #[(operator args &rest body) "\306\307\"\211G\310V\203 \311\202 \312G\310V\203( @A@\307AABBB\202) \313\211\313\211\31367G\314V\203U 7\242\242\315=\204M 7\242;\203U 7\211A7\242\316\317\320#\3217\242!\203\210 7\211A7\2427\211A7\242\f\322=\203 \n6\202[ \316\f\n#\202[ 7\242\242\301=\203\232 7\211A7\242\243\323\324	\"\325	\243\"	\242\3268\327\205\263 C\322\320\330\320\301\331\332\333\334\3358D\336BB\337\340\3358D\341BB\342BBED\343\340\3358D\344BBD\345BB\346\347	\350\3516\352BB\353\354\340\3358D\355BB\356B\357BBB\257FD\360\361\362\363\3647BBE\365BB\257#.BBB\207" [args interactive arg doc key keys delq &optional 2 ("<R>") ("<r>") nil 1 format plist-put :move-point t keywordp :keep-visual apply evil-interactive-form evil-concat-plists evil-define-command append :suppress-operator let* evil-operator-range-motion when evil-has-command-property-p quote (:motion) or evil-get-command-property (:motion) (#'undefined) evil-operator-range-type (:type) ((orig (point)) evil-operator-range-beginning evil-operator-range-end evil-inhibit-operator) (setq evil-inhibit-operator-value nil evil-this-operator this-command) prog1 (setq orig (point) evil-inhibit-operator-value evil-inhibit-operator) if ((when (evil-visual-state-p) (evil-visual-expand-region)) (when (or (evil-visual-state-p) (region-active-p)) (setq deactivate-mark t))) cond ((evil-visual-state-p) (evil-visual-rotate 'upper-left)) (:move-point) ((goto-char (or evil-operator-range-beginning orig))) ((t (goto-char orig))) unwind-protect let ((evil-inhibit-operator evil-inhibit-operator-value)) unless (and evil-inhibit-operator (evil-called-interactively-p)) ((setq evil-inhibit-operator-value nil)) visual body operator] 24 (#$ . 10412)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put evil-define-operator lisp-indent-function defun edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] [&optional ("interactive" [&rest form])] def-body)] 4)
#@149 Read a motion from the keyboard and return its buffer positions.
The return value is a list (BEG END), or (BEG END TYPE) if
RETURN-TYPE is non-nil.
(defalias 'evil-operator-range #[(&optional return-type) "\206\n \306 \205\n \307	\310``\"\311\211\21101\312\311\211234\313\216\314 \210\306 \2038 5\2038 5\202R\306 \204H \315 \203H \316 \202R\306 \204b \317 \203b \310\320 \321 6\206] \322#\202R7788\3239!9::7;\3124p<\324\2161\204\324 \325\326!\210\327\330\331 !8=\332=!\211=G\333>?>?W\203\274 \334@\335>=\233!\307#\210>T\211>\202\240 +\3361!\211@1\fA@0\206\322 \327\f801\337=\203\354 A\203\344 \340\202\345 \341\3111\202+1\203\371 \3421\343\"\203\344\345!\203\345 \210\312B\3111\202+C\203C\311C\202+\204\"D\203+\346!\346D!_1\203?\326\311E7\34710#*1FG\3500\"\21106.\351!\203\2210\203t\350!0=\204t\352!\210\3530\"\210\354!\210\355\311\"\210A\204\203\353\311\"\210\356!H\357!I\350!.\n\207" [evil-operator-range-motion evil-operator-range-type modifier count command range evil-ex-p evil-line evil-range nil t ((evil-echo-area-restore)) evil-echo-area-save evil-visual-state-p evil-visual-range region-active-p region-beginning region-end exclusive copy-tree ((byte-code "\302!\203 rq\210\303	!\210)\302\207" [buf old-state buffer-live-p evil-change-state] 2)) evil-change-state operator 2 evil-extract-count this-command-keys listify-key-sequence 0 define-key vconcat evil-read-motion undefined (nil nil nil) (nil nil) evil-get-command-property :suppress-operator fboundp evil-repeat-abort prefix-numeric-value evil-motion-range evil-type evil-range-p evil-contract-range evil-set-type evil-expand-range evil-set-range-properties evil-range-beginning evil-range-end type motion evil-write-echo-area evil-echo-area-message inhibit-quit evil-ex-range evil-this-type evil-state evil-previous-state evil-previous-state-alist evil-next-state old-state buf keys var --dotimes-limit-- evil-operator-shortcut-map return-type quit-flag evil-repeat-count current-prefix-arg mark-active evil-this-motion evil-this-motion-count evil-operator-range-beginning evil-operator-range-end] 7 (#$ . 12568)])
#@1098 Define type TYPE.
DOC is a general description and shows up in all docstrings.
It is followed by a list of keywords and functions:

:expand FUNC     Expansion function. This function should accept
                 two positions in the current buffer, BEG and END,
                 and return a pair of expanded buffer positions.
:contract FUNC   The opposite of :expand, optional.
:one-to-one BOOL Whether expansion is one-to-one. This means that
                 :expand followed by :contract always returns the
                 original range.
:normalize FUNC  Normalization function, optional. This function should
                 accept two unexpanded positions and adjust them before
                 expansion. May be used to deal with buffer boundaries.
:string FUNC     Description function. This takes two buffer positions
                 and returns a human-readable string, for example,
                 "2 lines".

If further keywords and functions are specified, they are assumed to
be transformations on buffer positions, like :expand and :contract.

(fn TYPE DOC [[KEY FUNC]...])
(defalias 'evil-define-type '(macro . #[(type doc &rest body) "\306\211\211\211\211\211\211\211\211@AB\307\310\311#\312C\242!\203+C\211AC\242C\211AC\242\313\"\203C \307#\202 @\314\315\316\317\320!#!\314\321\322	#!@\243@B@\243A@\211;\203q \321\323\n\"\202r \317\307\324\fD#\325=\203\274 \326\f\327\321\330\nD$\331\332\333\334\324DD\335BBB\336\337\340\341\342\343\344\345@D\346\347\336BG\350V\351BB\257\352BBFEE\257\202\326\f\353\321\354	\nD%\331\355\356\334\324DD\357BBB\336\360\340\361\336\362\363BB\364\365\307\365\366\367=FEE\364\370\343\344\345@D\346\347\336BG\350V\371BB\257\372BB\373BBB\374BBBBEE\257\211EA\235\203A\210\202'\375AEC\"A)\202 \376\367\"\203B\307\310\376\377\"\205@\376\310\"#\201F \201G \201H \324DBBB\375A\324DC\".	BB\207" [val sym string plist name key nil plist-put :one-to-one t keywordp plist-member intern replace-regexp-in-string "^:" #1="" symbol-name format "evil-%s-%s" "%s\n\n" quote :string defun (beg end &rest properties) "Return size of %s from BEG to END with PROPERTIES.\n\n%s%s" let (beg (evil-normalize-position beg)) (end (evil-normalize-position end)) type (plist range) when (and beg end) save-excursion (evil-sort beg end) (unless (plist-get properties :expanded) (setq range (apply #'evil-expand beg end type properties) beg (evil-range-beginning range) end (evil-range-end range) type (evil-type range type) plist (evil-range-properties range)) (setq properties (evil-concat-plists properties plist))) or apply function beg end 2 (properties) (#1#) (beg end &rest properties) "Perform %s transformation on %s from BEG to END with PROPERTIES.\n\n%s%s" (beg (evil-normalize-position beg)) (end (evil-normalize-position end)) (plist range) (and beg end) (evil-sort beg end) memq ('(:expand :contract)) setq properties :expanded :expand range (properties) ((apply #'evil-range beg end type properties)) (beg (evil-range-beginning range) end (evil-range-end range) type (evil-type range type) plist (evil-range-properties range)) ((setq properties (evil-concat-plists properties plist)) (apply #'evil-range beg end type properties)) append plist-get :contract func defun-forms args body doc #2=#:x progn evil-put-property 'evil-type-properties] 22 (#$ . 14780)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put evil-define-type lisp-indent-function defun edebug-form-spec (&define name [&optional stringp] [&rest [keywordp function-form]])] 4)
#@258 Define an interactive code.
PROMPT, if given, is the remainder of the interactive string
up to the next newline. Command properties may be specified
via KEY-VALUE pairs. BODY should evaluate to a list of values.

(fn CODE (PROMPT) [[KEY VALUE]...] BODY...)
(defalias 'evil-define-interactive-code '(macro . #[(code &rest body) "G\306V\205 \242<\205 \211A\242\242;\205 \211A\242\307\211\310\242!\203< \311\f\211A\242\211A\242D\"\202# 	\203Q \312	\311\n\205I \nC\"BB\202b G\306V\203_ \313B\202b @\314\315\305D\316\317\320\321D\321\fDEDE,\322BBD\207" [body args doc func properties code 1 nil keywordp append lambda progn eval-and-compile let* (entry (assoc code evil-interactive-alist)) value cons quote ((if entry (setcdr entry value) (push (cons code value) evil-interactive-alist)) code)] 10 (#$ . 18368)]))
(byte-code "\300\301\302\303#\210\304\305!\203 \305\306\307\"\210\310\311!\207" [put evil-define-interactive-code lisp-indent-function defun fboundp font-lock-add-keywords emacs-lisp-mode (("(\\(evil-\\(?:ex-\\)?define-\\(?:[^ k][^ e][^ y]\\|[-[:word:]]\\{4,\\}\\)\\)\\>[ \f	\n]*\\(\\(?:\\sw\\|\\s_\\)+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ("(\\(evil-\\(?:delay\\|narrow\\|signal\\|save\\|with\\(?:out\\)?\\)\\(?:-[-[:word:]]+\\)?\\)\\>[ \f	\n]+" 1 font-lock-keyword-face) ("(\\(evil-\\(?:[-[:word:]]\\)*loop\\)\\>[ \f	\n]+" 1 font-lock-keyword-face)) provide evil-macros] 4)
