(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eu]} ) (= scope=<EAssignScope.GLOBAL 1> flags=2 words=[] bindings=[('CHROME_SNAPSHOTS', {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //storage.googleapis.com/chromium-browser-snapshots]})]) (= scope=<EAssignScope.LOCAL 0> flags=0 words=[{[LIT_CHARS CHROME_URL]}] bindings=[]) (= scope=<EAssignScope.LOCAL 0> flags=0 words=[{[LIT_CHARS CHROME_NAME]}] bindings=[]) (= scope=<EAssignScope.LOCAL 0> flags=0 words=[{[LIT_CHARS CHROME_RELATIVE_BIN]}] bindings=[]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub OSTYPE]]} {[DQ [LIT_CHARS linux]] [LIT_OTHER "*"]}}) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_URL', {[VarSub CHROME_SNAPSHOTS] [LIT_CHARS /Linux_x64]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_NAME', {[LIT_CHARS chrome-linux]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_RELATIVE_BIN', {[LIT_CHARS chrome]})]) ) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub OSTYPE]]} {[DQ [LIT_CHARS darwin]] [LIT_OTHER "*"]}}) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_URL', {[VarSub CHROME_SNAPSHOTS] [LIT_CHARS /Mac]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_NAME', {[LIT_CHARS chrome-mac]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_RELATIVE_BIN', {[LIT_CHARS Chromium.app/Contents/MacOS/Chromium]})]) ) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub OSTYPE]]} {[DQ [LIT_CHARS cygwin]]}}) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_URL', {[VarSub CHROME_SNAPSHOTS] [LIT_CHARS /Win]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_NAME', {[LIT_CHARS chrome-win32]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CHROME_RELATIVE_BIN', {[LIT_CHARS chrome.exe]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown platform: "][VarSub OSTYPE]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} <REDIR_GREATAND ">&"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=2 words=[] bindings=[('CHROME_CANARY_DIR', {[VarSub HOME] [LIT_CHARS /.chrome/canary]})]) (= scope=<EAssignScope.GLOBAL 1> flags=2 words=[] bindings=[('CHROME_CANARY_BIN', {[VarSub CHROME_CANARY_DIR] [LIT_CHARS /] [VarSub CHROME_NAME] [LIT_CHARS /] [VarSub CHROME_RELATIVE_BIN]})]) (= scope=<EAssignScope.GLOBAL 1> flags=2 words=[] bindings=[('CHROME_CANARY_REV_FILE', {[VarSub CHROME_CANARY_DIR] [LIT_CHARS /VERSION]})]) (= scope=<EAssignScope.GLOBAL 1> flags=2 words=[] bindings=[('CHROME_REV', {[ComSub (Com {[LIT_CHARS curl]} {[LIT_CHARS -s]} {[VarSub CHROME_URL] [LIT_CHARS /LAST_CHANGE]})]})]) (FunctionDef getCanary [] (List (= scope=<EAssignScope.LOCAL 0> flags=0 words=[] bindings=[('existing_version', {[DQ ]})]) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_FILE_f {[VarSub CHROME_CANARY_REV_FILE]}} {B1 UNARY_FILE_x {[VarSub CHROME_CANARY_BIN]}}}) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('existing_version', {[ComSub (Com {[LIT_CHARS cat]} {[VarSub CHROME_CANARY_REV_FILE]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Found cached Chrome Canary version: "][VarSub existing_version]]} ) ) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub existing_version]]} {[DQ [VarSub CHROME_REV]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading Chrome Canary version: "][VarSub CHROME_REV]]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fR]} {[VarSub CHROME_CANARY_DIR]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub CHROME_CANARY_DIR]} ) (= scope=<EAssignScope.LOCAL 0> flags=0 words=[] bindings=[('file', {[VarSub CHROME_NAME] [LIT_CHARS .zip]})]) (Com {[LIT_CHARS curl]} {[VarSub CHROME_URL] [LIT_CHARS /] [VarSub CHROME_REV] [LIT_CHARS /] [VarSub file]} {[LIT_CHARS -o]} {[VarSub file]} ) (Com {[LIT_CHARS unzip]} {[VarSub file]} {[LIT_CHARS -d]} {[VarSub CHROME_CANARY_DIR]} ) (Com {[LIT_CHARS rm]} {[VarSub file]} ) (Com {[LIT_CHARS echo]} {[VarSub CHROME_REV]} < (FilenameRedirectNode filename={[VarSub CHROME_CANARY_REV_FILE]} <REDIR_GREAT ">"> 1), > ) ) ) ) ) (Com {[LIT_CHARS getCanary]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} <REDIR_GREATAND ">&"> 1), > ) (Com {[LIT_CHARS echo]} {[VarSub CHROME_CANARY_BIN]} ) )