// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:io';

void main() {
  print(FileMode.APPEND);
  print(FileMode.READ);
  print(FileMode.WRITE);
  print(FileMode.WRITE_ONLY);
  print(FileMode.WRITE_ONLY_APPEND);
  print(HttpStatus.CONTINUE);
  print(HttpStatus.SWITCHING_PROTOCOLS);
  print(HttpStatus.OK);
  print(HttpStatus.CREATED);
  print(HttpStatus.ACCEPTED);
  print(HttpStatus.NON_AUTHORITATIVE_INFORMATION);
  print(HttpStatus.NO_CONTENT);
  print(HttpStatus.RESET_CONTENT);
  print(HttpStatus.PARTIAL_CONTENT);
  print(HttpStatus.MULTIPLE_CHOICES);
  print(HttpStatus.MOVED_PERMANENTLY);
  print(HttpStatus.FOUND);
  print(HttpStatus.MOVED_TEMPORARILY);
  print(HttpStatus.SEE_OTHER);
  print(HttpStatus.NOT_MODIFIED);
  print(HttpStatus.USE_PROXY);
  print(HttpStatus.TEMPORARY_REDIRECT);
  print(HttpStatus.BAD_REQUEST);
  print(HttpStatus.UNAUTHORIZED);
  print(HttpStatus.PAYMENT_REQUIRED);
  print(HttpStatus.FORBIDDEN);
  print(HttpStatus.NOT_FOUND);
  print(HttpStatus.METHOD_NOT_ALLOWED);
  print(HttpStatus.NOT_ACCEPTABLE);
  print(HttpStatus.PROXY_AUTHENTICATION_REQUIRED);
  print(HttpStatus.REQUEST_TIMEOUT);
  print(HttpStatus.CONFLICT);
  print(HttpStatus.GONE);
  print(HttpStatus.LENGTH_REQUIRED);
  print(HttpStatus.PRECONDITION_FAILED);
  print(HttpStatus.REQUEST_ENTITY_TOO_LARGE);
  print(HttpStatus.REQUEST_URI_TOO_LONG);
  print(HttpStatus.UNSUPPORTED_MEDIA_TYPE);
  print(HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE);
  print(HttpStatus.EXPECTATION_FAILED);
  print(HttpStatus.UPGRADE_REQUIRED);
  print(HttpStatus.INTERNAL_SERVER_ERROR);
  print(HttpStatus.NOT_IMPLEMENTED);
  print(HttpStatus.BAD_GATEWAY);
  print(HttpStatus.SERVICE_UNAVAILABLE);
  print(HttpStatus.GATEWAY_TIMEOUT);
  print(HttpStatus.HTTP_VERSION_NOT_SUPPORTED);
  print(HttpStatus.NETWORK_CONNECT_TIMEOUT_ERROR);
  print(SYSTEM_ENCODING);
  print(StdioType.TERMINAL);
  print(StdioType.PIPE);
  print(StdioType.FILE);
  print(StdioType.OTHER);
  print(ProcessStartMode.NORMAL);
  print(ProcessStartMode.INHERIT_STDIO);
  print(ProcessStartMode.DETACHED);
  print(ProcessStartMode.DETACHED_WITH_STDIO);
  print(ProcessSignal.SIGHUP);
  print(ProcessSignal.SIGINT);
  print(ProcessSignal.SIGQUIT);
  print(ProcessSignal.SIGILL);
  print(ProcessSignal.SIGTRAP);
  print(ProcessSignal.SIGABRT);
  print(ProcessSignal.SIGBUS);
  print(ProcessSignal.SIGFPE);
  print(ProcessSignal.SIGKILL);
  print(ProcessSignal.SIGUSR1);
  print(ProcessSignal.SIGSEGV);
  print(ProcessSignal.SIGUSR2);
  print(ProcessSignal.SIGPIPE);
  print(ProcessSignal.SIGALRM);
  print(ProcessSignal.SIGTERM);
  print(ProcessSignal.SIGCHLD);
  print(ProcessSignal.SIGCONT);
  print(ProcessSignal.SIGSTOP);
  print(ProcessSignal.SIGTSTP);
  print(ProcessSignal.SIGTTIN);
  print(ProcessSignal.SIGTTOU);
  print(ProcessSignal.SIGURG);
  print(ProcessSignal.SIGXCPU);
  print(ProcessSignal.SIGXFSZ);
  print(ProcessSignal.SIGVTALRM);
  print(ProcessSignal.SIGPROF);
  print(ProcessSignal.SIGWINCH);
  print(ProcessSignal.SIGPOLL);
  print(ProcessSignal.SIGSYS);
  print(InternetAddressType.IP_V4);
  print(InternetAddressType.IP_V6);
  print(InternetAddressType.ANY);
  print(InternetAddress.LOOPBACK_IP_V4);
  print(InternetAddress.LOOPBACK_IP_V6);
  print(InternetAddress.ANY_IP_V4);
  print(InternetAddress.ANY_IP_V6);
  print(SocketDirection.RECEIVE);
  print(SocketDirection.SEND);
  print(SocketDirection.BOTH);
  print(SocketOption.TCP_NODELAY);
  print(RawSocketEvent.READ);
  print(RawSocketEvent.WRITE);
  print(RawSocketEvent.READ_CLOSED);
  print(RawSocketEvent.CLOSED);
  print(FileSystemEntityType.FILE);
  print(FileSystemEntityType.DIRECTORY);
  print(FileSystemEntityType.LINK);
  print(FileSystemEntityType.NOT_FOUND);
  print(FileSystemEvent.CREATE);
  print(FileSystemEvent.MODIFY);
  print(FileSystemEvent.DELETE);
  print(FileSystemEvent.MOVE);
  print(FileSystemEvent.ALL);
  print(ZLibOption.MIN_WINDOW_BITS);
  print(ZLibOption.MAX_WINDOW_BITS);
  print(ZLibOption.DEFAULT_WINDOW_BITS);
  print(ZLibOption.MIN_LEVEL);
  print(ZLibOption.MAX_LEVEL);
  print(ZLibOption.DEFAULT_LEVEL);
  print(ZLibOption.MIN_MEM_LEVEL);
  print(ZLibOption.MAX_MEM_LEVEL);
  print(ZLibOption.DEFAULT_MEM_LEVEL);
  print(ZLibOption.STRATEGY_FILTERED);
  print(ZLibOption.STRATEGY_HUFFMAN_ONLY);
  print(ZLibOption.STRATEGY_RLE);
  print(ZLibOption.STRATEGY_FIXED);
  print(ZLibOption.STRATEGY_DEFAULT);
  print(ZLIB);
  print(GZIP);
  print(FileMode.READ);
  print(FileMode.WRITE);
  print(FileMode.APPEND);
  print(FileMode.WRITE_ONLY);
  print(FileMode.WRITE_ONLY_APPEND);
  print(FileLock.SHARED);
  print(FileLock.EXCLUSIVE);
  print(FileLock.BLOCKING_SHARED);
  print(FileLock.BLOCKING_EXCLUSIVE);
  print(WebSocketStatus.NORMAL_CLOSURE);
  print(WebSocketStatus.GOING_AWAY);
  print(WebSocketStatus.PROTOCOL_ERROR);
  print(WebSocketStatus.UNSUPPORTED_DATA);
  print(WebSocketStatus.RESERVED_1004);
  print(WebSocketStatus.NO_STATUS_RECEIVED);
  print(WebSocketStatus.ABNORMAL_CLOSURE);
  print(WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
  print(WebSocketStatus.POLICY_VIOLATION);
  print(WebSocketStatus.MESSAGE_TOO_BIG);
  print(WebSocketStatus.MISSING_MANDATORY_EXTENSION);
  print(WebSocketStatus.INTERNAL_SERVER_ERROR);
  print(WebSocketStatus.RESERVED_1015);
  print(CompressionOptions.DEFAULT);
  print(CompressionOptions.OFF);
  print(WebSocket.CONNECTING);
  print(WebSocket.OPEN);
  print(WebSocket.CLOSING);
  print(WebSocket.CLOSED);
  print(HttpHeaders.ACCEPT);
  print(HttpHeaders.ACCEPT_CHARSET);
  print(HttpHeaders.ACCEPT_ENCODING);
  print(HttpHeaders.ACCEPT_LANGUAGE);
  print(HttpHeaders.ACCEPT_RANGES);
  print(HttpHeaders.AGE);
  print(HttpHeaders.ALLOW);
  print(HttpHeaders.AUTHORIZATION);
  print(HttpHeaders.CACHE_CONTROL);
  print(HttpHeaders.CONNECTION);
  print(HttpHeaders.CONTENT_ENCODING);
  print(HttpHeaders.CONTENT_LANGUAGE);
  print(HttpHeaders.CONTENT_LENGTH);
  print(HttpHeaders.CONTENT_LOCATION);
  print(HttpHeaders.CONTENT_MD5);
  print(HttpHeaders.CONTENT_RANGE);
  print(HttpHeaders.CONTENT_TYPE);
  print(HttpHeaders.DATE);
  print(HttpHeaders.ETAG);
  print(HttpHeaders.EXPECT);
  print(HttpHeaders.EXPIRES);
  print(HttpHeaders.FROM);
  print(HttpHeaders.HOST);
  print(HttpHeaders.IF_MATCH);
  print(HttpHeaders.IF_MODIFIED_SINCE);
  print(HttpHeaders.IF_NONE_MATCH);
  print(HttpHeaders.IF_RANGE);
  print(HttpHeaders.IF_UNMODIFIED_SINCE);
  print(HttpHeaders.LAST_MODIFIED);
  print(HttpHeaders.LOCATION);
  print(HttpHeaders.MAX_FORWARDS);
  print(HttpHeaders.PRAGMA);
  print(HttpHeaders.PROXY_AUTHENTICATE);
  print(HttpHeaders.PROXY_AUTHORIZATION);
  print(HttpHeaders.RANGE);
  print(HttpHeaders.REFERER);
  print(HttpHeaders.RETRY_AFTER);
  print(HttpHeaders.SERVER);
  print(HttpHeaders.TE);
  print(HttpHeaders.TRAILER);
  print(HttpHeaders.TRANSFER_ENCODING);
  print(HttpHeaders.UPGRADE);
  print(HttpHeaders.USER_AGENT);
  print(HttpHeaders.VARY);
  print(HttpHeaders.VIA);
  print(HttpHeaders.WARNING);
  print(HttpHeaders.WWW_AUTHENTICATE);
  print(HttpHeaders.COOKIE);
  print(HttpHeaders.SET_COOKIE);
  print(HttpHeaders.GENERAL_HEADERS);
  print(HttpHeaders.ENTITY_HEADERS);
  print(HttpHeaders.RESPONSE_HEADERS);
  print(HttpHeaders.REQUEST_HEADERS);
  print(ContentType.TEXT);
  print(ContentType.HTML);
  print(ContentType.JSON);
  print(ContentType.BINARY);
  print(HttpClient.DEFAULT_HTTP_PORT);
  print(HttpClient.DEFAULT_HTTPS_PORT);
}
