| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 { | 5 { |
| 6 'variables': { | 6 'variables': { |
| 7 'remoting_webapp_info_files': [ | 7 'remoting_webapp_info_files': [ |
| 8 'resources/chromoting16.webp', | 8 'resources/chromoting16.webp', |
| 9 'resources/chromoting48.webp', | 9 'resources/chromoting48.webp', |
| 10 'resources/chromoting128.webp', | 10 'resources/chromoting128.webp', |
| 11 ], | 11 ], |
| 12 | 12 |
| 13 # Jscompile proto files. | 13 # Jscompile proto files. |
| 14 # These provide type information for jscompile. | 14 # These provide type information for jscompile. |
| 15 'remoting_webapp_js_proto_files': [ | 15 'remoting_webapp_js_proto_files': [ |
| 16 'webapp/js_proto/chrome_proto.js', | 16 'webapp/js_proto/chrome_proto.js', |
| 17 'webapp/js_proto/dom_proto.js', | 17 'webapp/js_proto/dom_proto.js', |
| 18 'webapp/js_proto/remoting_proto.js', | 18 'webapp/js_proto/remoting_proto.js', |
| 19 'webapp/js_proto/test_proto.js', |
| 19 ], | 20 ], |
| 20 | 21 |
| 22 # |
| 23 # Webapp browsertest and unittest JavaScript files. |
| 24 # |
| 25 |
| 26 # Mocks used by browsertests and unittests. |
| 27 'remoting_webapp_test_js_mock_files': [ |
| 28 'webapp/js_proto/chrome_proto.js', |
| 29 'webapp/unittests/chrome_mocks.js', |
| 30 'webapp/unittests/mock_signal_strategy.js', |
| 31 ], |
| 32 # Browser test files. |
| 33 'remoting_webapp_browsertest_js_files': [ |
| 34 'webapp/browser_test/browser_test.js', |
| 35 'webapp/browser_test/bump_scroll_browser_test.js', |
| 36 'webapp/browser_test/cancel_pin_browser_test.js', |
| 37 'webapp/browser_test/invalid_pin_browser_test.js', |
| 38 'webapp/browser_test/it2me_browser_test.js', |
| 39 'webapp/browser_test/mock_client_plugin.js', |
| 40 'webapp/browser_test/mock_host_list_api.js', |
| 41 'webapp/browser_test/mock_identity.js', |
| 42 'webapp/browser_test/mock_oauth2_api.js', |
| 43 'webapp/browser_test/mock_session_connector.js', |
| 44 'webapp/browser_test/scrollbar_browser_test.js', |
| 45 'webapp/browser_test/timeout_waiter.js', |
| 46 'webapp/browser_test/unauthenticated_browser_test.js', |
| 47 'webapp/browser_test/update_pin_browser_test.js', |
| 48 ], |
| 49 'remoting_webapp_browsertest_js_all_files': [ |
| 50 '<@(remoting_webapp_browsertest_js_files)', |
| 51 '<@(remoting_webapp_js_proto_files)', |
| 52 '<@(remoting_webapp_test_js_mock_files)', |
| 53 ], |
| 54 |
| 55 # These product files are excluded from our JavaScript unittest |
| 56 'remoting_webapp_unittest_js_exclude_files': [ |
| 57 # background.js is where the onLoad handler is defined, which |
| 58 # makes it the entry point of the background page. |
| 59 'webapp/crd/js/background.js', |
| 60 ], |
| 61 # The unit test cases for the webapp |
| 62 'remoting_webapp_unittest_js_files': [ |
| 63 'webapp/unittests/apps_v2_migration_unittest.js', |
| 64 'webapp/unittests/base_unittest.js', |
| 65 'webapp/unittests/dns_blackhole_checker_unittest.js', |
| 66 'webapp/unittests/event_hook_unittest.js', |
| 67 'webapp/unittests/fallback_signal_strategy_unittest.js', |
| 68 'webapp/unittests/ipc_unittest.js', |
| 69 'webapp/unittests/it2me_helpee_channel_unittest.js', |
| 70 'webapp/unittests/it2me_helper_channel_unittest.js', |
| 71 'webapp/unittests/it2me_service_unittest.js', |
| 72 'webapp/unittests/l10n_unittest.js', |
| 73 'webapp/unittests/menu_button_unittest.js', |
| 74 'webapp/unittests/xmpp_connection_unittest.js', |
| 75 'webapp/unittests/xmpp_login_handler_unittest.js', |
| 76 'webapp/unittests/xmpp_stream_parser_unittest.js', |
| 77 ], |
| 78 'remoting_webapp_unittest_js_all_files': [ |
| 79 '<@(remoting_webapp_js_proto_files)', |
| 80 '<@(remoting_webapp_test_js_mock_files)', |
| 81 '<@(remoting_webapp_unittest_js_files)', |
| 82 ], |
| 83 'remoting_webapp_unittest_all_files': [ |
| 84 'webapp/crd/html/menu_button.css', |
| 85 '<@(remoting_webapp_unittest_js_all_files)', |
| 86 ], |
| 87 'remoting_webapp_unittest_template_main': |
| 88 'webapp/crd/html/template_unittest.html', |
| 89 |
| 90 # |
| 91 # Webapp JavaScript file groups. |
| 92 # |
| 93 |
| 21 # Auth (apps v1) JavaScript files. | 94 # Auth (apps v1) JavaScript files. |
| 22 # These files aren't included directly from main.html. They are | 95 # These files aren't included directly from main.html. They are |
| 23 # referenced from the manifest.json file (appsv1 only). | 96 # referenced from the manifest.json file (appsv1 only). |
| 24 'remoting_webapp_js_auth_v1_files': [ | 97 'remoting_webapp_js_auth_v1_files': [ |
| 25 'webapp/crd/js/cs_third_party_auth_trampoline.js', # client to host | 98 'webapp/crd/js/cs_third_party_auth_trampoline.js', # client to host |
| 26 'webapp/crd/js/cs_oauth2_trampoline.js', # Google account | 99 'webapp/crd/js/cs_oauth2_trampoline.js', # Google account |
| 27 ], | 100 ], |
| 28 # Auth (client to host) JavaScript files. | 101 # Auth (client to host) JavaScript files. |
| 29 'remoting_webapp_js_auth_client2host_files': [ | 102 'remoting_webapp_js_auth_client2host_files': [ |
| 30 'webapp/crd/js/third_party_host_permissions.js', | 103 'webapp/crd/js/third_party_host_permissions.js', |
| 31 'webapp/crd/js/third_party_token_fetcher.js', | 104 'webapp/crd/js/third_party_token_fetcher.js', |
| 32 ], | 105 ], |
| 33 # Auth (Google account) JavaScript files. | 106 # Auth (Google account) JavaScript files. |
| 34 'remoting_webapp_js_auth_google_files': [ | 107 'remoting_webapp_js_auth_google_files': [ |
| 35 'webapp/base/js/auth_dialog.js', | 108 'webapp/base/js/auth_dialog.js', |
| 36 'webapp/base/js/auth_init.js', | 109 'webapp/base/js/auth_init.js', |
| 37 'webapp/crd/js/identity.js', | 110 'webapp/crd/js/identity.js', |
| 38 'webapp/crd/js/oauth2.js', | 111 'webapp/crd/js/oauth2.js', |
| 39 'webapp/crd/js/oauth2_api.js', | 112 'webapp/crd/js/oauth2_api.js', |
| 40 'webapp/crd/js/oauth2_api_impl.js', | 113 'webapp/crd/js/oauth2_api_impl.js', |
| 41 ], | 114 ], |
| 115 # Cast extension handler JavaScript files. |
| 116 'remoting_webapp_js_cast_extension_files': [ |
| 117 'webapp/crd/js/cast_extension_handler.js', |
| 118 ], |
| 42 # Client JavaScript files. | 119 # Client JavaScript files. |
| 43 'remoting_webapp_js_client_files': [ | 120 'remoting_webapp_js_client_files': [ |
| 44 'webapp/crd/js/client_plugin.js', | 121 'webapp/crd/js/client_plugin.js', |
| 45 'webapp/crd/js/client_plugin_impl.js', | 122 'webapp/crd/js/client_plugin_impl.js', |
| 46 # TODO(garykac) For client_screen: | 123 # TODO(garykac) For client_screen: |
| 47 # * Split out pin/access code stuff into separate file. | 124 # * Split out pin/access code stuff into separate file. |
| 48 # * Move client logic into session_connector | 125 # * Move client logic into session_connector |
| 49 'webapp/crd/js/client_screen.js', | 126 'webapp/crd/js/client_screen.js', |
| 50 'webapp/crd/js/client_session.js', | 127 'webapp/crd/js/client_session.js', |
| 51 'webapp/crd/js/clipboard.js', | 128 'webapp/crd/js/clipboard.js', |
| 52 'webapp/crd/js/desktop_connected_view.js', | 129 'webapp/crd/js/desktop_connected_view.js', |
| 53 'webapp/crd/js/hangout_session.js', | 130 'webapp/crd/js/hangout_session.js', |
| 54 'webapp/crd/js/session_connector.js', | 131 'webapp/crd/js/session_connector.js', |
| 55 'webapp/crd/js/session_connector_impl.js', | 132 'webapp/crd/js/session_connector_impl.js', |
| 56 'webapp/crd/js/smart_reconnector.js', | 133 'webapp/crd/js/smart_reconnector.js', |
| 57 'webapp/crd/js/video_frame_recorder.js', | 134 'webapp/crd/js/video_frame_recorder.js', |
| 58 ], | 135 ], |
| 59 # Remoting core JavaScript files. | 136 # Remoting core JavaScript files. |
| 60 'remoting_webapp_js_core_files': [ | 137 'remoting_webapp_js_core_files': [ |
| 61 'webapp/base/js/app_capabilities.js', | 138 'webapp/base/js/app_capabilities.js', |
| 62 'webapp/base/js/application.js', | 139 'webapp/base/js/application.js', |
| 63 'webapp/base/js/base.js', | 140 'webapp/base/js/base.js', |
| 64 'webapp/base/js/ipc.js', | 141 'webapp/base/js/ipc.js', |
| 65 'webapp/base/js/platform.js', | 142 'webapp/base/js/platform.js', |
| 66 'webapp/crd/js/apps_v2_migration.js', | 143 'webapp/crd/js/apps_v2_migration.js', |
| 67 'webapp/crd/js/error.js', | 144 'webapp/crd/js/error.js', |
| 68 'webapp/crd/js/event_handlers.js', | 145 'webapp/crd/js/event_handlers.js', |
| 69 'webapp/crd/js/plugin_settings.js', | 146 'webapp/crd/js/plugin_settings.js', |
| 70 # TODO(garykac) Split out UI client stuff from remoting.js. | |
| 71 'webapp/crd/js/remoting.js', | 147 'webapp/crd/js/remoting.js', |
| 72 'webapp/crd/js/typecheck.js', | 148 'webapp/crd/js/typecheck.js', |
| 73 'webapp/crd/js/xhr.js', | 149 'webapp/crd/js/xhr.js', |
| 74 ], | 150 ], |
| 151 # Gnubby authentication JavaScript files. |
| 152 'remoting_webapp_js_gnubby_auth_files': [ |
| 153 'webapp/crd/js/gnubby_auth_handler.js', |
| 154 ], |
| 75 # Host JavaScript files. | 155 # Host JavaScript files. |
| 76 'remoting_webapp_js_host_files': [ | 156 'remoting_webapp_js_host_files': [ |
| 77 'webapp/crd/js/host.js', | 157 'webapp/crd/js/host.js', |
| 78 'webapp/crd/js/host_settings.js', | 158 'webapp/crd/js/host_settings.js', |
| 79 ], | 159 ], |
| 80 # Files for controlling the local machine as a host. | 160 # Files for controlling the local machine as a host. |
| 81 # Includes both it2me and me2me files. | 161 # Includes both it2me and me2me files. |
| 82 'remoting_webapp_js_host_control_files': [ | 162 'remoting_webapp_js_host_control_files': [ |
| 83 'webapp/crd/js/host_controller.js', | 163 'webapp/crd/js/host_controller.js', |
| 84 'webapp/crd/js/host_daemon_facade.js', | 164 'webapp/crd/js/host_daemon_facade.js', |
| (...skipping 12 matching lines...) Expand all Loading... |
| 97 'webapp/crd/js/host_list_api_impl.js', | 177 'webapp/crd/js/host_list_api_impl.js', |
| 98 'webapp/crd/js/host_table_entry.js', | 178 'webapp/crd/js/host_table_entry.js', |
| 99 ], | 179 ], |
| 100 # Logging and stats JavaScript files. | 180 # Logging and stats JavaScript files. |
| 101 'remoting_webapp_js_logging_files': [ | 181 'remoting_webapp_js_logging_files': [ |
| 102 'webapp/crd/js/format_iq.js', | 182 'webapp/crd/js/format_iq.js', |
| 103 'webapp/crd/js/log_to_server.js', | 183 'webapp/crd/js/log_to_server.js', |
| 104 'webapp/crd/js/server_log_entry.js', | 184 'webapp/crd/js/server_log_entry.js', |
| 105 'webapp/crd/js/stats_accumulator.js', | 185 'webapp/crd/js/stats_accumulator.js', |
| 106 ], | 186 ], |
| 187 # Remoting signaling files. |
| 188 'remoting_webapp_js_signaling_files': [ |
| 189 'webapp/crd/js/dns_blackhole_checker.js', |
| 190 'webapp/crd/js/fallback_signal_strategy.js', |
| 191 'webapp/crd/js/signal_strategy.js', |
| 192 'webapp/crd/js/wcs_adapter.js', |
| 193 'webapp/crd/js/wcs_sandbox_container.js', |
| 194 'webapp/crd/js/xmpp_connection.js', |
| 195 'webapp/crd/js/xmpp_login_handler.js', |
| 196 'webapp/crd/js/xmpp_stream_parser.js', |
| 197 ], |
| 107 # UI JavaScript files. | 198 # UI JavaScript files. |
| 108 'remoting_webapp_js_ui_files': [ | 199 'remoting_webapp_js_ui_files': [ |
| 109 'webapp/base/js/window_shape.js', | 200 'webapp/base/js/window_shape.js', |
| 110 'webapp/crd/js/butter_bar.js', | 201 'webapp/crd/js/butter_bar.js', |
| 111 'webapp/crd/js/connection_stats.js', | 202 'webapp/crd/js/connection_stats.js', |
| 112 'webapp/crd/js/feedback.js', | 203 'webapp/crd/js/feedback.js', |
| 113 'webapp/crd/js/fullscreen.js', | 204 'webapp/crd/js/fullscreen.js', |
| 114 'webapp/crd/js/fullscreen_v1.js', | 205 'webapp/crd/js/fullscreen_v1.js', |
| 115 'webapp/crd/js/fullscreen_v2.js', | 206 'webapp/crd/js/fullscreen_v2.js', |
| 116 'webapp/crd/js/l10n.js', | 207 'webapp/crd/js/l10n.js', |
| 117 'webapp/crd/js/menu_button.js', | 208 'webapp/crd/js/menu_button.js', |
| 118 'webapp/crd/js/options_menu.js', | 209 'webapp/crd/js/options_menu.js', |
| 119 'webapp/crd/js/ui_mode.js', | 210 'webapp/crd/js/ui_mode.js', |
| 120 'webapp/crd/js/toolbar.js', | 211 'webapp/crd/js/toolbar.js', |
| 121 'webapp/crd/js/window_frame.js', | 212 'webapp/crd/js/window_frame.js', |
| 122 ], | 213 ], |
| 123 # Remoting signaling files. | |
| 124 'remoting_webapp_js_signaling_files': [ | |
| 125 'webapp/crd/js/dns_blackhole_checker.js', | |
| 126 'webapp/crd/js/fallback_signal_strategy.js', | |
| 127 'webapp/crd/js/signal_strategy.js', | |
| 128 'webapp/crd/js/wcs_adapter.js', | |
| 129 'webapp/crd/js/wcs_sandbox_container.js', | |
| 130 'webapp/crd/js/xmpp_connection.js', | |
| 131 'webapp/crd/js/xmpp_login_handler.js', | |
| 132 'webapp/crd/js/xmpp_stream_parser.js', | |
| 133 ], | |
| 134 # Remoting WCS sandbox JavaScript files. | 214 # Remoting WCS sandbox JavaScript files. |
| 135 'remoting_webapp_js_wcs_sandbox_files': [ | 215 'remoting_webapp_js_wcs_sandbox_files': [ |
| 136 'webapp/crd/js/wcs.js', | 216 'webapp/crd/js/wcs.js', |
| 137 'webapp/crd/js/wcs_loader.js', | 217 'webapp/crd/js/wcs_loader.js', |
| 138 'webapp/crd/js/wcs_sandbox_content.js', | 218 'webapp/crd/js/wcs_sandbox_content.js', |
| 139 'webapp/crd/js/xhr_proxy.js', | 219 'webapp/crd/js/xhr_proxy.js', |
| 140 ], | 220 ], |
| 141 # gnubby authentication JavaScript files. | |
| 142 'remoting_webapp_js_gnubby_auth_files': [ | |
| 143 'webapp/crd/js/gnubby_auth_handler.js', | |
| 144 ], | |
| 145 # cast extension handler JavaScript files. | |
| 146 'remoting_webapp_js_cast_extension_files': [ | |
| 147 'webapp/crd/js/cast_extension_handler.js', | |
| 148 ], | |
| 149 # Shared files for tests. | |
| 150 'remoting_webapp_js_test_common_files': [ | |
| 151 'webapp/unittests/mock_signal_strategy.js', | |
| 152 ], | |
| 153 # browser test JavaScript files. | |
| 154 'remoting_webapp_js_browser_test_files': [ | |
| 155 'webapp/browser_test/browser_test.js', | |
| 156 'webapp/browser_test/bump_scroll_browser_test.js', | |
| 157 'webapp/browser_test/cancel_pin_browser_test.js', | |
| 158 'webapp/browser_test/invalid_pin_browser_test.js', | |
| 159 'webapp/browser_test/it2me_browser_test.js', | |
| 160 'webapp/browser_test/mock_client_plugin.js', | |
| 161 'webapp/browser_test/mock_host_list_api.js', | |
| 162 'webapp/browser_test/mock_identity.js', | |
| 163 'webapp/browser_test/mock_oauth2_api.js', | |
| 164 'webapp/browser_test/mock_session_connector.js', | |
| 165 'webapp/browser_test/scrollbar_browser_test.js', | |
| 166 'webapp/browser_test/timeout_waiter.js', | |
| 167 'webapp/browser_test/unauthenticated_browser_test.js', | |
| 168 'webapp/browser_test/update_pin_browser_test.js', | |
| 169 ], | |
| 170 # These product files are excluded from our JavaScript unittest | |
| 171 'remoting_webapp_unittest_exclude_files': [ | |
| 172 # background.js is where the onLoad handler is defined, which | |
| 173 # makes it the entry point of the background page. | |
| 174 'webapp/crd/js/background.js', | |
| 175 ], | |
| 176 # The unit test cases for the webapp | |
| 177 'remoting_webapp_unittest_js_files': [ | |
| 178 'webapp/unittests/chrome_mocks.js', | |
| 179 'webapp/js_proto/chrome_proto.js', | |
| 180 'webapp/unittests/apps_v2_migration_unittest.js', | |
| 181 'webapp/unittests/base_unittest.js', | |
| 182 'webapp/unittests/dns_blackhole_checker_unittest.js', | |
| 183 'webapp/unittests/event_hook_unittest.js', | |
| 184 'webapp/unittests/fallback_signal_strategy_unittest.js', | |
| 185 'webapp/unittests/ipc_unittest.js', | |
| 186 'webapp/unittests/it2me_helpee_channel_unittest.js', | |
| 187 'webapp/unittests/it2me_helper_channel_unittest.js', | |
| 188 'webapp/unittests/it2me_service_unittest.js', | |
| 189 'webapp/unittests/l10n_unittest.js', | |
| 190 'webapp/unittests/menu_button_unittest.js', | |
| 191 'webapp/unittests/xmpp_connection_unittest.js', | |
| 192 'webapp/unittests/xmpp_login_handler_unittest.js', | |
| 193 'webapp/unittests/xmpp_stream_parser_unittest.js', | |
| 194 ], | |
| 195 'remoting_webapp_unittest_additional_files': [ | |
| 196 'webapp/crd/html/menu_button.css', | |
| 197 ], | |
| 198 'remoting_webapp_unittest_template_main': | |
| 199 'webapp/crd/html/template_unittest.html', | |
| 200 | 221 |
| 201 # The shared JavaScript files required by main.html. | 222 # The shared JavaScript files required by main.html. |
| 202 'remoting_webapp_shared_main_html_js_files': [ | 223 'remoting_webapp_shared_main_html_js_files': [ |
| 203 # Include the core files first as it is required by the other files. | 224 # Include the core files first as it is required by the other files. |
| 204 # Otherwise, Jscompile will complain. | 225 # Otherwise, Jscompile will complain. |
| 205 '<@(remoting_webapp_js_core_files)', | 226 '<@(remoting_webapp_js_core_files)', |
| 206 '<@(remoting_webapp_js_auth_client2host_files)', | 227 '<@(remoting_webapp_js_auth_client2host_files)', |
| 207 '<@(remoting_webapp_js_auth_google_files)', | 228 '<@(remoting_webapp_js_auth_google_files)', |
| 208 '<@(remoting_webapp_js_client_files)', | 229 '<@(remoting_webapp_js_client_files)', |
| 209 '<@(remoting_webapp_js_gnubby_auth_files)', | 230 '<@(remoting_webapp_js_gnubby_auth_files)', |
| 210 '<@(remoting_webapp_js_cast_extension_files)', | 231 '<@(remoting_webapp_js_cast_extension_files)', |
| 211 '<@(remoting_webapp_js_host_files)', | 232 '<@(remoting_webapp_js_host_files)', |
| 212 '<@(remoting_webapp_js_host_control_files)', | 233 '<@(remoting_webapp_js_host_control_files)', |
| 213 '<@(remoting_webapp_js_host_display_files)', | 234 '<@(remoting_webapp_js_host_display_files)', |
| 214 '<@(remoting_webapp_js_logging_files)', | 235 '<@(remoting_webapp_js_logging_files)', |
| 215 '<@(remoting_webapp_js_ui_files)', | 236 '<@(remoting_webapp_js_ui_files)', |
| 216 '<@(remoting_webapp_js_signaling_files)', | 237 '<@(remoting_webapp_js_signaling_files)', |
| 217 # Uncomment these lines to include browser test files in the web app | 238 # Uncomment this line to include browser test files in the web app |
| 218 # to expedite debugging or local development. | 239 # to expedite debugging or local development. |
| 219 # '<@(remoting_webapp_js_browser_test_files)', | 240 # '<@(remoting_webapp_js_all_test_files)', |
| 220 # '<@(remoting_webapp_js_test_common_files)' | |
| 221 ], | 241 ], |
| 222 | 242 |
| 223 # The CRD-specific JavaScript files required by main.html. | 243 # The CRD-specific JavaScript files required by main.html. |
| 224 'remoting_webapp_crd_main_html_js_files': [ | 244 'remoting_webapp_crd_main_html_js_files': [ |
| 225 'webapp/crd/js/crd_connect.js', | 245 'webapp/crd/js/crd_connect.js', |
| 226 'webapp/crd/js/crd_event_handlers.js', | 246 'webapp/crd/js/crd_event_handlers.js', |
| 227 'webapp/crd/js/crd_main.js', | 247 'webapp/crd/js/crd_main.js', |
| 228 'webapp/crd/js/desktop_remoting.js', | 248 'webapp/crd/js/desktop_remoting.js', |
| 229 ], | 249 ], |
| 230 | 250 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 'webapp/crd/manifest.json.jinja2', | 389 'webapp/crd/manifest.json.jinja2', |
| 370 '<(remoting_webapp_template_main)', | 390 '<(remoting_webapp_template_main)', |
| 371 '<(remoting_webapp_template_wcs_sandbox)', | 391 '<(remoting_webapp_template_wcs_sandbox)', |
| 372 '<(remoting_webapp_template_background)', | 392 '<(remoting_webapp_template_background)', |
| 373 '<@(remoting_webapp_template_files)', | 393 '<@(remoting_webapp_template_files)', |
| 374 '<@(remoting_webapp_crd_js_files)', | 394 '<@(remoting_webapp_crd_js_files)', |
| 375 ], | 395 ], |
| 376 | 396 |
| 377 }, | 397 }, |
| 378 } | 398 } |
| OLD | NEW |