;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; 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.

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


#@87 Normalize RANGE.
If RANGE is a single range, return (RANGE). Otherwise, return RANGE.
(defalias 'gnus-range-normalize #[(range) "\243<\203 \207C\207" [range] 1 (#$ . 408)])
(put 'gnus-range-normalize 'byte-optimizer 'byte-compile-inline-expand)
#@30 Return last element of LIST.
(defalias 'gnus-last-element #[(list) "A\203\f A\211\202 @\207" [list] 2 (#$ . 663)])
#@38 Do a complete, total copy of a list.
(defalias 'gnus-copy-sequence #[(list) "\302	:\203% 	@:\203 \303	\211A\242!B\202 	\211A\242B\202 	\2030 \237	\244\2022 \237)\207" [out list nil gnus-copy-sequence] 3 (#$ . 789)])
#@65 Return a list of elements of LIST1 that do not appear in LIST2.
(defalias 'gnus-set-difference #[(list1 list2) "\306\307\310\"\311\n\311\211\203 \f@\312\313	#\210\fA\211\204 *\311\211\203= \f@\314	\"\2046 B\fA\211\204( *\237*\207" [result hash2 list2 elt --dolist-tail-- list1 make-hash-table :test eq nil puthash t gethash] 5 (#$ . 1023)])
#@103 Return a range comprising all the RANGES, which are pre-sorted.
RANGES will be destructively altered.
(defalias 'gnus-range-nconcat #[(&rest ranges) "\305\306\"\211\211A\242\211\243<\203 	\202 	C)\303\n!\306\211\203\235 \f@\211\211\243<\2034 	\2026 	C)@\247\203F \211@@B\240\210	@\247\203T 	\211@	@B\240\210@AT	@@U\203n @	@A\241\210	A\241\210\202\222 	\241\210	@@	@AU\203\202 	\211@@\240\210@@@AU\203\222 \211@@\240\210\303!\fA\211\204% *\n@:\203\260 \nG\307U\203\260 \n@\202\261 \n*\207" [ranges range result last --dolist-tail-- delete nil 1] 4 (#$ . 1390)])
#@110 Return the range of elements in RANGE1 that do not appear in RANGE2.
Both ranges must be in ascending order.
(defalias 'gnus-range-difference #[(range1 range2) "\211\243<\203\f 	\202 	C)\n\211\243<\203 	\202 	C)\306\307!B\211\310\fA\203\374 \fA@	\n@\n	\247\203C 	\202F 	@	\247\203S 	\202V 	A\f\n\247\203c \n\202f \n@\n\247\203s \n\202v \nA\fV\203\211 \f\211AA\241\210\202\367 \fU\203\240 	<\203\240 \fA\240\210\202\367 \204\252 \306\202\367 \fW\203\272 \f\211A\210\202\367 W\203\312 \n\211A\210\202\367 X\203\343 \fX\203\343 \f\211AA\241\210\202\367 \fSBT\fBD\fAA\244\241\210.\202* A+\207" [range1 range range2 new-range r safe nil copy-sequence t r1 r2 min1 max1 min2 max2] 5 (#$ . 1985)])
#@135 Return a list of elements of LIST1 that do not appear in LIST2.
Both lists have to be sorted over <.
The tail of LIST1 is not copied.
(defalias 'gnus-sorted-difference #[(list1 list2) "\303	\2035 \n\2035 	@\n@U\203 	A\nA\202 	@\n@W\203/ 	@B	A\211\202 \nA\202 \237	\244)\207" [out list1 list2 nil] 3 (#$ . 2753)])
#@121 Return a list of elements of LIST1 that do not appear in LIST2.
Both lists have to be sorted over <.
LIST1 is modified.
(defalias 'gnus-sorted-ndifference #[(list1 list2) "\304B\211\203; \203; @@U\203$ \nA\241\210AA\202 @@W\2035 A\211\202 A\202 	A*\207" [list1 top prev list2 nil] 3 (#$ . 3085)])
#@105 Return a list of elements that are in LIST1 or LIST2 but not both.
Both lists have to be sorted over <.
(defalias 'gnus-sorted-complement #[(list1 list2) "\303	\203\n \n\204 	\206R \n\202R 	\203J \n\203J 	@\n@U\203+ 	A\nA\202 	@\n@W\203? 	@B	A\211\202 \n@B\nA\202 \237	\206Q \n\244)\207" [out list1 list2 nil] 3 (#$ . 3412)])
(defalias 'gnus-intersection #[(list1 list2) "\303	\203 	@\n>\203 	@B	A\211\204 )\207" [result list2 list1 nil] 3])
#@83 Return intersection of LIST1 and LIST2.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-intersection #[(list1 list2) "\303	\2035 \n\2035 	@\n@U\203  	@B	A\nA\202 	@\n@W\203/ 	A\211\202 \nA\202 \237)\207" [out list1 list2 nil] 3 (#$ . 3882)])
#@87 Return intersection of RANGE1 and RANGE2.
RANGE1 and RANGE2 have to be sorted over <.
(defalias 'gnus-sorted-range-intersection #[(range1 range2) "\306	@\211\247\203 	A\247\203 	A\306\202  \n\202  \nA\n@\f@\211\247\203: \fA\247\2036 \fA\306\202? \202? A@	A\fA\n\203\322 \203\322 W\203] 	A\306\202\234 \nW\203l \fA\306\202\234 \n]^\211	U\203\205 	B\202\214 	BB*W\203\232 \306\202\234 \306\n\204\265 	@\211\247\203\254 \n\202\261 \nA\n@	A\204G \f@\211\247\203\305 \202\312 A@\fA\202G A\203\334 \237\202\350 @\247\203\346 \202\350 @-\207" [out range1 min1 max1 range2 min2 nil max2 max min] 4 (#$ . 4158)])
(defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection)
#@118 Return intersection of LIST1 and LIST2 by modifying cdr pointers of LIST1.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-nintersection #[(list1 list2) "\304B\211\203; \203; @@U\203! AA\202 @@W\2035 \nA\241\210A\211\202 A\202 \n\304\241\210	A*\207" [list1 top prev list2 nil] 3 (#$ . 4902)])
#@76 Return union of LIST1 and LIST2.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-union #[(list1 list2) "\303	\203? \n\203? 	@\n@U\203  	@B	A\nA\202 	@\n@W\2034 	@B	A\211\202 \n@B\nA\202 	\203O 	@B	A\211\204C \n\203_ \n@B\nA\211\204S \237)\207" [out list1 list2 nil] 3 (#$ . 5241)])
#@111 Return union of LIST1 and LIST2 by modifying cdr pointers of LIST1.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-nunion #[(list1 list2) "\304B\211\203E \203E @@U\203! AA\202 @@W\2032 A\211\202 \n@C\241\210\nAA\n\241\210\202 \203Y \n@C\241\210\nAA\211\204I 	A*\207" [list1 top prev list2 nil] 3 (#$ . 5568)])
#@150 Convert sorted list of numbers to a list of ranges or a single range.
If ALWAYS-LIST is non-nil, this function will always release a list of
ranges.
(defalias 'gnus-compress-sequence #[(numbers &optional always-list) "@@\305\205u A<\204 \202u \203L \n@U\204E \nT@U\203/ @\202E 	\nU\2039 	\202< 	\nBB@@A\211\204 \f\204e \204e 	\nU\203_ 	C\202u 	\nB\202u 	\nU\203o 	\202r 	\nBB\237+\207" [numbers first last result always-list nil] 3 (#$ . 5935)])
(defalias 'gnus-uncompress-sequence 'gnus-uncompress-range)
#@134 Expand a list of ranges into a list of numbers.
RANGES is either a single range on the form `(num . num)' or a list of
these ranges.
(defalias 'gnus-uncompress-range #[(ranges) "\304\211\211\204 \304\202j A<\2040 @A\n	X\203+ \nB\nT\211\202 \237\202j \203h @:\204H @\247\203a @B\202a @@@A\n	X\203a \nB\nT\211\202Q A\211\2044 \237+\207" [result last first ranges nil] 4 (#$ . 6473)])
#@112 Return a list of ranges that has all articles from both RANGES and LIST.
Note: LIST has to be sorted over `<'.
(defalias 'gnus-add-to-range #[(ranges list) "\204	 \306	\307\"\207\310	!A<\204 C\311\211\211\211\f\203\223 	\203\223 	@:\2046 @\2069 @@	\203R 	A\203R 	A@\fW\203R 	A\211\204> @\fW\203k 		A\n\311\241\210\306\307\"\f\244\f@:\204v @\206y @A	\203\214 	@X\203\214 	A\211\204~ A\211\204% 	\203\240 \306	\307\"\f\244\f\312\f\313\"\211\f\211\203D@:\204\374 A\203=A@:\204\333 @TA@U\203=\211@A@B\240\210\211AA\241\210\202=@TA@@U\203=A@@\240\210\211A@\240\210\211AA\241\210\202=A\203=A@:\204#@ATA@U\203=@A@\241\210\211AA\241\210\202=@ATA@@U\203=@A@A\241\210\211AA\241\210A\211\204\255 \f-\207" [ranges list temp highest lowest ilist gnus-compress-sequence t copy-sequence nil sort #[(r1 r2) ":\204	 \206 @	:\204 	\206 	@W\207" [r1 r2] 2] out] 6 (#$ . 6893)])
#@218 Return a range that has all articles from RANGE2 removed from RANGE1.
The returned range is always a list.  RANGE2 can also be a unsorted
list of articles.  RANGE1 is modified by side effects, RANGE2 is not
modified.
(defalias 'gnus-remove-from-range #[(range1 range2) "\203 	\204\n \207\306\211\211\211\211\211\211\307	!\n\fA<\203) \202+ C\310	A<\2037 	\2029 	C\311\"@	@\n:\203P @\202R :\203_ A\202a \n:\203n \n@\202p \n\n:\203} \nA\202 \n\2038	\2038\nW\203\267 	\210	A\211@\211\n:\203\242 \n@\202\244 \n\n:\203\261 \nA\202\263 \n\202\200 X\203\354 \f\nX\203\354 \210A\211@\211:\203\327 @\202\331 :\203\346 A\202\350 \202\200 X\203$\n\fX\203$	\210	A\nT	@\211\n:\203\n@\202\n\n:\203\nA\202 \n\202\200 X\203\244\n\fX\203\244S=\203@\fB\f\202ISB\fB\f	\210	A\n\fW\203Z\nT\202\200\210A\211@\211:\203n@\202p:\203}A\202	@\211\n:\203\217\n@\202\221\n\n:\203\236\nA\202\240\n\202\200 \fX\203\362\f\nX\203\362S=\203\300\fB\f\202\311SB\fB\f\210A\211@\211:\203\335@\202\337:\203\354A\202\356\202\200 \fW\203\200 \210A\f=\203\f\fB\f\202\fB\fB\f@\211:\203#@\202%:\2032A\2024\202\200 \203Y\f=\203L\fB\f\202T\fB\fB\f\210A\203j\211A\242\fB\f\202Y\f\237.\207" [range1 range2 r2_max r2_min r1_max r1_min nil gnus-copy-sequence sort #[(e1 e2) ":\203\n @\202 	:\203 	@\202 	W\207" [e1 e2] 2] r2 r1 out] 10 (#$ . 7843)])
(defalias 'gnus-member-of-range #[(number ranges) "A<\204 	@Y\205Z 	AX\207\303\203W @\247\203% 	@Y\202* 	@@Y\203W \n\203W @\247\203> 	@U\202K 	@@Y\203P 	@AX\203P \304A\211\204 \n)?\207" [ranges number not-stop t nil] 3])
#@85 Return a list of numbers in LIST that are members of RANGES.
LIST is a sorted list.
(defalias 'gnus-list-range-intersection #[(list ranges) "\211\243<\203\f 	\202 	C)\305\211\f\211A\242\211\203^ \203> @\247\203/ @W\2024 @AW\203> A\211\204\" \203 @\247\203O @U\202T @@Y\203 \nB\202 \n\237*\207" [ranges range result number list nil] 3 (#$ . 9634)])
(defalias 'gnus-inverse-list-range-intersection 'gnus-list-range-difference)
#@89 Return a list of numbers in LIST that are not members of RANGES.
LIST is a sorted list.
(defalias 'gnus-list-range-difference #[(list ranges) "\211\243<\203\f 	\202 	C)\305\211\f\211A\242\211\203_ \203> @\247\203/ @W\2024 @AW\203> A\211\204\" \203X @\247\203P @U?\202U @@W\203 \nB\202 \n\237*\207" [ranges range result number list nil] 3 (#$ . 10092)])
#@53 Return the length RANGE would have if uncompressed.
(defalias 'gnus-range-length #[(range) "\204 \304\207A<\204 \305A@\306#\207\304\307\211\203; @	\n:\2031 \305\nA\n@\306#\2022 \310\\A\211\204 \307	+\207" [range sum x --dolist-tail-- 0 - -1 nil 1] 6 (#$ . 10477)])
#@42 Add RANGE2 to RANGE1 (nondestructively).
(defalias 'gnus-range-add #[(range1 range2) "A<\204	 C	A<\204 	C\211A\242	\211A\242\306\211\211		\204. \203\276	\2047 \306\202r \204? \307\202r 	\247\203Q \247\203Q 	W\202r 	\247\203_ 	@W\202r \247\203l 	@W\202r 	@@W\n\203} 	\202~ \n\211\204\213 \n\202\217\n\204\225 \202\217\247\203\324 \n\247\203\324 \n=\203\256 \202\217T\n=\203\277 \nB\202\217\nT=\203\320 \nB\202\217\306\202\217\247\203\n@Y\203\361 \nAX\203\361 \n\202\217T\n@=\203\nAB\202\217S\nA=\203\n@B\202\217\306\202\217\n\247\203b\n@Y\2038\nAX\2038\202\217\nT@=\203K\nAB\202\217\nSA=\203^@\nB\202\217\306\202\217AT\n@W\203q\306\202\217\nAT@W\203\200\306\202\217@\n@^A\nA]B*\206\245\203\233\fB\n\203\244	\202\245\n\203\265\211A\242\211	\202' 	\211A\242\202% \203\306\fB\310\f!-\207" [range1 range2 selector item range item2 nil t reverse item1 tmp2 tmp1] 6 (#$ . 10765)])
#@42 Add NUM into sorted LIST by side effect.
(defalias 'gnus-add-to-sorted-list #[(list num) "\304B\211\203 @W\203 A\211\204\n @=\204' \nB\241\210	A*\207" [list top prev num nil] 4 (#$ . 11809)])
#@46 Apply FUNC to each value contained by RANGE.
(defalias 'gnus-range-map #[(func range) "\211\243<\203\f \202 C)\205B \211A\242\211\247\203& \n	!\210\202> 	@	A\211X\203= \n\f!\210\fT\211\202- *)\202 \207" [range span func last first] 3 (#$ . 12023)])
(provide 'gnus-range)
