;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\303\304\305\306!\"\210\303\307\310\306!\"\210\303\311\307\"\210\312\311\313\314#\210\315\306\316\307#\317\306\320\321\322$\207" [require eieio seq defalias eieio-instance-inheritor-p eieio-make-class-predicate eieio-instance-inheritor eieio-instance-inheritor--eieio-childp eieio-make-child-predicate eieio-instance-inheritor-child-p make-obsolete "use (cl-typep ... 'eieio-instance-inheritor) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((parent-instance :initarg :parent-instance :type eieio-instance-inheritor :documentation "The parent of this instance.\nIf a slot of this class is referenced, and is unbound, then the parent\nis checked for a value.")) (:documentation "This special class can enable instance inheritance.\nUse `clone' to make a new object that does instance inheritance from\na parent instance.  When a slot in the child is referenced, and has\nnot been set, use values from the parent." :abstract t)] 6)#@82 You cannot create a new object of type `eieio-instance-inheritor'.

(fn &rest _)
(defalias 'eieio-instance-inheritor #[128 "\300\301!\207" [error "Class eieio-instance-inheritor is abstract"] 3 (#$ . 1089)])
(byte-code "\300\301\302\303\304\305%\210\300\306\302\307\304\310%\210\300\311\302\312\302\313%\210\314\315\316\317!\"\210\314\320\321\317!\"\210\314\322\320\"\210\323\322\324\325#\210\326\317\327\320#\330\317\302\331\332$\207" [cl-generic-define-method slot-unbound nil ((object eieio-instance-inheritor) _class slot-name _fn) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[1285 "\300\301\"\203 \302\211\301\"\"\207 \207" [slot-boundp parent-instance eieio-oref] 9 "\n\n(fn CL--CNM OBJECT CLASS SLOT-NAME FN)"]] 6 "If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal.\nSLOT-NAME is the offending slot.  FN is the function signaling the error.\n\n(fn OBJECT CLASS SLOT-NAME FN)"]] 5 "\n\n(fn CL--NM)"] clone ((obj eieio-instance-inheritor) &rest params) #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[642 "\211@;\203 \211A\262\242\"\202 !\300\301!!\211\2030 \211@\302!\303\"\266A\266\202\202 \210\203: \304\"\210\305\306#\210\207" [eieio-class-slots eieio-object-class eieio-slot-descriptor-name slot-makeunbound shared-initialize eieio-oset parent-instance] 10 "\n\n(fn CL--CNM OBJ &rest PARAMS)"]] 6 "Clone OBJ, initializing `:parent' to OBJ.\nAll slots are unbound, except those initialized with PARAMS.\n\n(fn OBJ &rest PARAMS)"]] 5 "\n\n(fn CL--NM)"] eieio-instance-inheritor-slot-boundp ((object eieio-instance-inheritor) slot) #[514 "\300\"\203	 \301\207\300\302\"\205 \303\304\302\"\"\207" [slot-boundp t parent-instance eieio-instance-inheritor-slot-boundp eieio-oref] 6 "Return non-nil if the instance inheritor OBJECT's SLOT is bound.\nSee `slot-boundp' for details on binding slots.\nThe instance inheritor uses unbound slots as a way of cascading cloned\nslot values, so testing for a slot being bound requires extra steps\nfor this kind of object.\n\n(fn OBJECT SLOT)"] defalias eieio-instance-tracker-p eieio-make-class-predicate eieio-instance-tracker eieio-instance-tracker--eieio-childp eieio-make-child-predicate eieio-instance-tracker-child-p make-obsolete "use (cl-typep ... 'eieio-instance-tracker) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((tracking-symbol :type symbol :allocation :class :documentation "The symbol used to maintain a list of our instances.\nThe instance list is treated as a variable, with new instances added to it.")) (:documentation "This special class enables instance tracking.\nInheritors from this class must overload `tracking-symbol' which is\na variable symbol used to store a list of all instances." :abstract t)] 6)#@80 You cannot create a new object of type `eieio-instance-tracker'.

(fn &rest _)
(defalias 'eieio-instance-tracker #[128 "\300\301!\207" [error "Class eieio-instance-tracker is abstract"] 3 (#$ . 4212)])
(byte-code "\300\301\302\303\304\305%\210\300\306\304\307\304\310%\207" [cl-generic-define-method initialize-instance (:after) ((this eieio-instance-tracker) &rest _slots) nil #[385 "\300\301\"J>?\205 \211\302JC\"L\207" [eieio-oref tracking-symbol append] 7 "Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments.\n\n(fn THIS &rest SLOTS)"] delete-instance ((this eieio-instance-tracker)) #[257 "\300\301\"\302\300\301\"J\"L\207" [eieio-oref tracking-symbol delq] 7 "Remove THIS from the master list of this class.\n\n(fn THIS)"]] 6)#@115 Find KEY as an element of SLOT in the objects in LIST-SYMBOL.
Returns the first match.

(fn KEY SLOT LIST-SYMBOL)
(defalias 'eieio-instance-tracker-find #[771 "\300J#\207" [object-assoc] 7 (#$ . 5019)])
(byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias eieio-singleton-p eieio-make-class-predicate eieio-singleton eieio-singleton--eieio-childp eieio-make-child-predicate eieio-singleton-child-p make-obsolete "use (cl-typep ... 'eieio-singleton) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((singleton :type eieio-singleton :allocation :class :documentation "The only instance of this class that will be instantiated.\nMultiple calls to `make-instance' will return this object.")) (:documentation "This special class causes subclasses to be singletons.\nA singleton is a class which will only ever have one instance." :abstract t)] 6)#@73 You cannot create a new object of type `eieio-singleton'.

(fn &rest _)
(defalias 'eieio-singleton #[128 "\300\301!\207" [error "Class eieio-singleton is abstract"] 3 (#$ . 6003)])
(byte-code "\300\301\302\303\304\305%\210\306\307\310\311!\"\210\306\312\313\311!\"\210\306\314\312\"\210\315\314\316\317#\210\320\311\321\312#\322\311\302\323\324$\207" [cl-generic-define-method make-instance nil ((class (subclass eieio-singleton)) &rest _slots) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[642 "\301\302\"\211=\203 \303\302 #\207\207" [eieio--unbound eieio-oref-default singleton eieio-oset-default] 8 "\n\n(fn CL--CNM CLASS &rest SLOTS)"]] 6 "Constructor for singleton CLASS.\nNAME and SLOTS initialize the new object.\nThis constructor guarantees that no matter how many you request,\nonly one object ever exists.\n\n(fn CLASS &rest SLOTS)"]] 5 "\n\n(fn CL--NM)"] defalias eieio-named-p eieio-make-class-predicate eieio-named eieio-named--eieio-childp eieio-make-child-predicate eieio-named-child-p make-obsolete "use (cl-typep ... 'eieio-named) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((object-name :initarg :object-name :initform nil)) (:documentation "Object with a name." :abstract t)] 6)#@69 You cannot create a new object of type `eieio-named'.

(fn &rest _)
(defalias 'eieio-named #[128 "\300\301!\207" [error "Class eieio-named is abstract"] 3 (#$ . 7428)])
(byte-code "\300\301\302\303\304\305%\210\306\307\310\307\311\302#\312#\210\300\307\302\311\302\313%\210\314\307\315\316#\210\306\317\307\302#\210\314\317\307\320#\210\300\307\302\321\302\322%\210\300\323\302\324\304\325%\210\300\326\302\327\304\330%\210\306\331\332\333!\"\210\306\334\335\333!\"\210\306\336\334\"\210\314\336\337\316#\210\340\333\341\334#\342\333\302\343\344$\207" [cl-generic-define-method eieio-object-name-string nil ((obj eieio-named)) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[514 "\300\301\"\206	  \207" [slot-value object-name] 5 "\n\n(fn CL--CNM OBJ)"]] 6 "Return a string which is OBJ's name.\n\n(fn OBJ)"]] 5 "\n\n(fn CL--NM)"] defalias eieio-object-set-name-string cl-generic-define (obj name) "Set the string which is OBJ's NAME.\n\n(fn OBJ NAME)" #[514 "\211;\204 \301\302\303\304E\"\210\305#\207" [eieio--object-names signal wrong-type-argument string name puthash] 7 "\n\n(fn OBJ NAME)"] make-obsolete "inherit from `eieio-named' and use (setf (slot-value OBJ \\='object-name) NAME) instead" "25.1" object-set-name-string "24.4" ((obj eieio-named) name) #[514 "\211;\204 \300\301\302\303E\"\210\304\305#\207" [signal wrong-type-argument string name eieio-oset object-name] 7 "Set the string which is OBJ's NAME.\n\n(fn OBJ NAME)"] clone ((obj eieio-named) &rest params) #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[642 "\211@;\205\f \211A\262\242\300#\301\302\"\303\302\206Z \301	\302\"\232\203Y \304 \305\306\"\216\203P \307\310\"\203P \311\312\313\"!T\314\211\224O\315\316!Q\262\202S \317P)\262\202Z #\210\207" [apply slot-value object-name eieio-oset match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] string-match "-\\([0-9]+\\)" string-to-number match-string 1 0 "-" int-to-string "-1"] 15 "\n\n(fn CL--CNM OBJ &rest PARAMS)"]] 6 "Clone OBJ, initializing `:parent' to OBJ.\nAll slots are unbound, except those initialized with PARAMS.\n\n(fn OBJ &rest PARAMS)"]] 5 "\n\n(fn CL--NM)"] make-instance ((class (subclass eieio-named)) &rest args) #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[642 "\211@;\204	  \207\203 \301\202 \302\303\"\210\304\305$\207" [eieio-backward-compatibility ignore message "Obsolete: name passed without :object-name to %S constructor" apply :object-name] 8 "\n\n(fn CL--CNM CLASS &rest ARGS)"]] 6 "\n\n(fn CLASS &rest ARGS)"]] 5 "\n\n(fn CL--NM)"] eieio-persistent-p eieio-make-class-predicate eieio-persistent eieio-persistent--eieio-childp eieio-make-child-predicate eieio-persistent-child-p "use (cl-typep ... 'eieio-persistent) instead" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((file :initarg :file :type string :documentation "The save file for this persistent object.\nThis must be a string, and must be specified when the new object is\ninstantiated.") (extension :type string :allocation :class :initform ".eieio" :documentation "Extension of files saved by this object.\nEnables auto-choosing nice file names based on name.") (file-header-line :type string :allocation :class :initform ";; EIEIO PERSISTENT OBJECT" :documentation "Header line for the save file.\nThis is used with the `object-write' method.") (do-backups :type boolean :allocation :class :initform t :documentation "Saving this object should make backup files.\nSetting to nil will mean no backups are made.")) (:documentation "This special class enables persistence through save files.\nUse the `object-write' method to write this object to disk.  The save\nformat is Emacs Lisp code which calls the constructor for the saved\nobject.  For this reason, only slots which do not have an `:initarg'\nspecified will not be saved." :abstract t)] 6)#@74 You cannot create a new object of type `eieio-persistent'.

(fn &rest _)
(defalias 'eieio-persistent #[128 "\300\301!\207" [error "Class eieio-persistent is abstract"] 3 (#$ . 11800)])
(cl-generic-define-method 'eieio-persistent-save-interactive nil '((this eieio-persistent) prompt &optional name) nil #[770 "\300\301\"\204 \302\301\303\304\205 \305\n\306\"P##\210\305\301\"\207" [slot-boundp file eieio-oset read-file-name nil eieio-oref extension] 13 "Prepare to save THIS.  Use in an `interactive' statement.\nQuery user for file name with PROMPT if THIS does not yet specify\na file.  Optional argument NAME specifies a default file name.\n\n(fn THIS PROMPT &optional NAME)"])#@306 Read a persistent object from FILENAME, and return it.
Signal an error if the object in FILENAME is not a constructor
for CLASS.  Optional ALLOW-SUBCLASS says that it is ok for
`eieio-persistent-read' to load in subclasses of class instead of
being pedantic.

(fn FILENAME &optional CLASS ALLOW-SUBCLASS)
(defalias 'eieio-persistent-read #[769 "\204 \300\301!\210\203 \302!\204 \303\304\305\305E\"\210\306\307\310\"r\211q\210\311\312\"\216\313!\210\314 *\262\315!\316@\317\"\204A \320\321@\"\210\203` \211@=\204` \203X \316@\"\204` \320\322@#\210\323@A\"\262\324\325#\210\207" [warn "`eieio-persistent-read' called without specifying a class" class-p signal wrong-type-argument class generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents buffer-string read child-of-class-p eieio-persistent error "Invalid object: %s is not a subclass of `eieio-persistent'" "Invalid object: %s is not an object of class %s nor a subclass" eieio-persistent-make-instance eieio-oset file] 9 (#$ . 12499)])
(byte-code "\300\301\302\301\303\304#\305#\210\306\301\304\307\304\310%\207" [defalias eieio-persistent-make-instance cl-generic-define (objclass inputlist) nil "Convert INPUTLIST, representing slot values, to an instance of OBJCLASS.\nClean slot values, and possibly recursively create additional\nobjects found there.\n\n(fn OBJCLASS INPUTLIST)" cl-generic-define-method ((objclass (subclass eieio-default-superclass)) inputlist) #[514 "\301@;\203 @\262A\202 \301\302!\210\2036 @A@\303!\262B\262\211B\266\203AA\262\202 \304\305\237#\203Z \306\307\"\203Z \310\311\"\204Z \203Z \312\311#\210\207" [eieio-backward-compatibility nil eieio--full-class-object eieio-persistent-fix-value apply make-instance object-of-class-p eieio-named eieio-oref object-name eieio-oset] 10 "\n\n(fn OBJCLASS INPUTLIST)"]] 6)#@295 Fix PROPOSED-VALUE.
Remove leading quotes from lists, and the symbol `list' from the
head of lists.  Explicitly construct any objects found, and strip
any text properties from string values.

This function will descend into the contents of lists, hash
tables, and vectors.

(fn PROPOSED-VALUE)
(defalias 'eieio-persistent-fix-value #[257 "\211C\211\242:\203\204 \211\242@\300=\203% \211\242\242\300=\203\" \211\242A@\240\210\202 \211\242\207\211\242@\301=\2037 \211\242G\302U\2037 \303\207\211\242@\301=\203p \211\242A@:\203p \304\242A@@!\203p \303\242A\211\203l \211@\305@A\"B\262A\266\202\202U \210\211\237\207\304\242@!\203\201 \305\242@\242A\"\207\211\242\207\306\242!\203\227 \307\310\311\"\242\"\210\211\242\207\312\242!\203\321 \211\242G\313\211W\203\314 \242H\242\304\242!\203\277 \305@A\"\202\302 \314!I\266\211T\262\202\242 \266\211\242\207\211\242;\203\334 \315\242!\207\211\242\207" [quote list 1 nil class-p eieio-persistent-make-instance hash-table-p maphash make-closure #[514 "\300\242\301\302\242!\203 \303@A\"\202 \304!#\207" [V0 puthash class-p eieio-persistent-make-instance eieio-persistent-fix-value] 8 "\n\n(fn KEY VALUE)"] vectorp 0 eieio-persistent-fix-value substring-no-properties] 10 (#$ . 14435)])
(byte-code "\300\301\302\303\304\305%\210\300\306\302\307\302\310%\210\300\311\302\312\302\313%\210\314\315!\207" [cl-generic-define-method object-write nil ((this eieio-persistent) &optional comment) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[770 "\206\n \300\301\"\"\207" [eieio-oref file-header-line] 8 "\n\n(fn CL--CNM THIS &optional COMMENT)"]] 6 "Write persistent object THIS out to the current stream.\nOptional argument COMMENT is a header line comment.\n\n(fn THIS &optional COMMENT)"]] 5 "\n\n(fn CL--NM)"] eieio-persistent-path-relative ((this eieio-persistent) file) #[514 "\300\301!\302\303\304\"!\"\207" [file-relative-name expand-file-name file-name-directory eieio-oref file] 8 "For object THIS, make absolute file name FILE relative.\n\n(fn THIS FILE)"] eieio-persistent-save ((this eieio-persistent) &optional file) #[513 "\211\203	 \304!\262\305\306\307\"r\211q\210\310\311\"\216\206 \312\313\"\314!p\2031 \315\"\2024 \316!\312\313\"\310\317#\216\320\313#\210\321\312\n\322\"\"*\266\312\323\"?\324\325ed\326\327%-\207" [default-directory standard-output coding-system-for-write backup-inhibited expand-file-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] eieio-oref file file-name-directory eieio-persistent-path-relative file-name-nondirectory #[0 "\302\301\303\300#\207" [V0 V1 eieio-oset file] 4] eieio-oset object-write file-header-line do-backups utf-8-emacs write-region nil 1] 13 "Save persistent object THIS to disk.\nOptional argument FILE overrides the file name specified in the object\ninstance.\n\n(fn THIS &optional FILE)"] provide eieio-base] 6)
