{
  "animation/AnimationTimeline.js | animationPreviews": {
    "message": "Animation previews"
  },
  "animation/AnimationTimeline.js | animationPreviewS": {
    "message": "Animation Preview {PH1}"
  },
  "animation/AnimationTimeline.js | clearAll": {
    "message": "Clear all"
  },
  "animation/AnimationTimeline.js | listeningForAnimations": {
    "message": "Listening for animations..."
  },
  "animation/AnimationTimeline.js | pause": {
    "message": "Pause"
  },
  "animation/AnimationTimeline.js | pauseAll": {
    "message": "Pause all"
  },
  "animation/AnimationTimeline.js | pauseTimeline": {
    "message": "Pause timeline"
  },
  "animation/AnimationTimeline.js | playbackRatePlaceholder": {
    "message": "{PH1}%"
  },
  "animation/AnimationTimeline.js | playbackRates": {
    "message": "Playback rates"
  },
  "animation/AnimationTimeline.js | playTimeline": {
    "message": "Play timeline"
  },
  "animation/AnimationTimeline.js | replayTimeline": {
    "message": "Replay timeline"
  },
  "animation/AnimationTimeline.js | resumeAll": {
    "message": "Resume all"
  },
  "animation/AnimationTimeline.js | selectAnEffectAboveToInspectAnd": {
    "message": "Select an effect above to inspect and modify."
  },
  "animation/AnimationTimeline.js | setSpeedToS": {
    "message": "Set speed to {PH1}"
  },
  "animation/AnimationUI.js | animationEndpointSlider": {
    "message": "Animation Endpoint slider"
  },
  "animation/AnimationUI.js | animationKeyframeSlider": {
    "message": "Animation Keyframe slider"
  },
  "animation/AnimationUI.js | sSlider": {
    "message": "{PH1} slider"
  },
  "animation/ModuleUIStrings.js | animations": {
    "message": "Animations"
  },
  "changes/ChangesSidebar.js | sFromSourceMap": {
    "message": "{PH1} (from source map)"
  },
  "changes/ChangesTextEditor.js | additions": {
    "message": "Addition:{PH1}"
  },
  "changes/ChangesTextEditor.js | deletions": {
    "message": "Deletion:{PH1}"
  },
  "changes/ChangesView.js | binaryData": {
    "message": "Binary data"
  },
  "changes/ChangesView.js | changesDiffViewer": {
    "message": "Changes diff viewer"
  },
  "changes/ChangesView.js | noChanges": {
    "message": "No changes"
  },
  "changes/ChangesView.js | revertAllChangesToCurrentFile": {
    "message": "Revert all changes to current file"
  },
  "changes/ChangesView.js | sDeletion": {
    "message": "{PH1} deletion (-)"
  },
  "changes/ChangesView.js | sDeletions": {
    "message": "{PH1} deletions (-)"
  },
  "changes/ChangesView.js | sInsertion": {
    "message": "{PH1} insertion (+),"
  },
  "changes/ChangesView.js | sInsertions": {
    "message": "{PH1} insertions (+),"
  },
  "changes/ChangesView.js | SkippingDMatchingLines": {
    "message": "( … Skipping {PH1} matching lines … )"
  },
  "changes/ModuleUIStrings.js | changes": {
    "message": "Changes"
  },
  "changes/ModuleUIStrings.js | changesDrawer": {
    "message": "Changes drawer"
  },
  "coverage/CoverageListView.js | Byte": {
    "message": "1 byte"
  },
  "coverage/CoverageListView.js | ByteS": {
    "message": "1 byte, {PH1}"
  },
  "coverage/CoverageListView.js | codeCoverage": {
    "message": "Code Coverage"
  },
  "coverage/CoverageListView.js | css": {
    "message": "CSS"
  },
  "coverage/CoverageListView.js | jsCoverageWithPerBlock": {
    "message": "JS coverage with per block granularity: Once a block of JavaScript was executed, that block is marked as covered."
  },
  "coverage/CoverageListView.js | jsCoverageWithPerFunction": {
    "message": "JS coverage with per function granularity: Once a function was executed, the whole function is marked as covered."
  },
  "coverage/CoverageListView.js | jsPerBlock": {
    "message": "JS (per block)"
  },
  "coverage/CoverageListView.js | jsPerFunction": {
    "message": "JS (per function)"
  },
  "coverage/CoverageListView.js | sBytes": {
    "message": "{PH1} bytes"
  },
  "coverage/CoverageListView.js | sBytesS": {
    "message": "{PH1} bytes, {PH2}"
  },
  "coverage/CoverageListView.js | sBytesSBelongToBlocksOf": {
    "message": "{PH1} bytes ({PH2} %) belong to blocks of JavaScript that have not (yet) been executed."
  },
  "coverage/CoverageListView.js | sBytesSBelongToBlocksOfJavascript": {
    "message": "{PH1} bytes ({PH2} %) belong to blocks of JavaScript that have executed at least once."
  },
  "coverage/CoverageListView.js | sBytesSBelongToFunctionsThatHave": {
    "message": "{PH1} bytes ({PH2} %) belong to functions that have not (yet) been executed."
  },
  "coverage/CoverageListView.js | sBytesSBelongToFunctionsThatHaveExecuted": {
    "message": "{PH1} bytes ({PH2} %) belong to functions that have executed at least once."
  },
  "coverage/CoverageListView.js | sOfFileUnusedSOfFileUsed": {
    "message": "{PH1} % of file unused, {PH2} % of file used"
  },
  "coverage/CoverageListView.js | sPercent": {
    "message": "{PH1} %"
  },
  "coverage/CoverageListView.js | totalBytes": {
    "message": "Total Bytes"
  },
  "coverage/CoverageListView.js | type": {
    "message": "Type"
  },
  "coverage/CoverageListView.js | unusedBytes": {
    "message": "Unused Bytes"
  },
  "coverage/CoverageListView.js | url": {
    "message": "URL"
  },
  "coverage/CoverageListView.js | usageVisualization": {
    "message": "Usage Visualization"
  },
  "coverage/CoverageView.js | all": {
    "message": "All"
  },
  "coverage/CoverageView.js | chooseCoverageGranularityPer": {
    "message": "Choose coverage granularity: Per function has low overhead, per block has significant overhead."
  },
  "coverage/CoverageView.js | clearAll": {
    "message": "Clear all"
  },
  "coverage/CoverageView.js | clickTheRecordButtonSToStart": {
    "message": "Click the record button {PH1} to start capturing coverage."
  },
  "coverage/CoverageView.js | clickTheReloadButtonSToReloadAnd": {
    "message": "Click the reload button {PH1} to reload and start capturing coverage."
  },
  "coverage/CoverageView.js | contentScripts": {
    "message": "Content scripts"
  },
  "coverage/CoverageView.js | css": {
    "message": "CSS"
  },
  "coverage/CoverageView.js | export": {
    "message": "Export..."
  },
  "coverage/CoverageView.js | filterCoverageByType": {
    "message": "Filter coverage by type"
  },
  "coverage/CoverageView.js | filteredSTotalS": {
    "message": "Filtered: {PH1}  Total: {PH2}"
  },
  "coverage/CoverageView.js | includeExtensionContentScripts": {
    "message": "Include extension content scripts"
  },
  "coverage/CoverageView.js | javascript": {
    "message": "JavaScript"
  },
  "coverage/CoverageView.js | perBlock": {
    "message": "Per block"
  },
  "coverage/CoverageView.js | perFunction": {
    "message": "Per function"
  },
  "coverage/CoverageView.js | sOfSSUsedSoFarSUnused": {
    "message": "{PH1} of {PH2} ({PH3}%) used so far,\n        {PH4} unused."
  },
  "coverage/CoverageView.js | urlFilter": {
    "message": "URL filter"
  },
  "coverage/ModuleUIStrings.js | coverage": {
    "message": "Coverage"
  },
  "coverage/ModuleUIStrings.js | instrumentCoverage": {
    "message": "Instrument coverage"
  },
  "coverage/ModuleUIStrings.js | performance": {
    "message": "Performance"
  },
  "coverage/ModuleUIStrings.js | startInstrumentingCoverageAnd": {
    "message": "Start instrumenting coverage and reload page"
  },
  "coverage/ModuleUIStrings.js | stopInstrumentingCoverageAndShow": {
    "message": "Stop instrumenting coverage and show results"
  },
  "developer_resources/DeveloperResourcesListView.js | Byte": {
    "message": "1 byte"
  },
  "developer_resources/DeveloperResourcesListView.js | copyInitiatorUrl": {
    "message": "Copy initiator URL"
  },
  "developer_resources/DeveloperResourcesListView.js | copyUrl": {
    "message": "Copy URL"
  },
  "developer_resources/DeveloperResourcesListView.js | developerResources": {
    "message": "Developer Resources"
  },
  "developer_resources/DeveloperResourcesListView.js | error": {
    "message": "Error"
  },
  "developer_resources/DeveloperResourcesListView.js | failure": {
    "message": "failure"
  },
  "developer_resources/DeveloperResourcesListView.js | initiator": {
    "message": "Initiator"
  },
  "developer_resources/DeveloperResourcesListView.js | pending": {
    "message": "pending"
  },
  "developer_resources/DeveloperResourcesListView.js | sBytes": {
    "message": "{PH1} bytes"
  },
  "developer_resources/DeveloperResourcesListView.js | status": {
    "message": "Status"
  },
  "developer_resources/DeveloperResourcesListView.js | success": {
    "message": "success"
  },
  "developer_resources/DeveloperResourcesListView.js | totalBytes": {
    "message": "Total Bytes"
  },
  "developer_resources/DeveloperResourcesListView.js | url": {
    "message": "URL"
  },
  "developer_resources/DeveloperResourcesView.js | enableLoadingThroughTarget": {
    "message": "Enable loading through target"
  },
  "developer_resources/DeveloperResourcesView.js | enterTextToSearchTheUrlAndError": {
    "message": "Enter text to search the URL and Error columns"
  },
  "developer_resources/DeveloperResourcesView.js | loadHttpsDeveloperResources": {
    "message": "Load HTTP(S) developer resources through the inspected target"
  },
  "developer_resources/DeveloperResourcesView.js | resources": {
    "message": "{PH1} resources"
  },
  "developer_resources/DeveloperResourcesView.js | resourcesCurrentlyLoading": {
    "message": "{PH1} resources, {PH2} currently loading"
  },
  "developer_resources/ModuleUIStrings.js | developerResources": {
    "message": "Developer Resources"
  },
  "devices/DevicesView.js | thisPanelHasBeenDeprecatedIn": {
    "message": "This panel has been deprecated in favor of the {PH1} interface, which has equivalent functionality."
  },
  "devices/ModuleUIStrings.js | android": {
    "message": "android"
  },
  "devices/ModuleUIStrings.js | mobile": {
    "message": "mobile"
  },
  "devices/ModuleUIStrings.js | remoteDevices": {
    "message": "Remote devices"
  },
  "devices/ModuleUIStrings.js | usb": {
    "message": "usb"
  },
  "layer_viewer/LayerDetailsView.js | compositingReasons": {
    "message": "Compositing Reasons"
  },
  "layer_viewer/LayerDetailsView.js | containingBlocRectangleDimensions": {
    "message": "Containing Block {PH1} × {PH2} (at {PH3}, {PH4})"
  },
  "layer_viewer/LayerDetailsView.js | hasABackdropFilter": {
    "message": "Has a backdrop filter."
  },
  "layer_viewer/LayerDetailsView.js | hasABlendingEffectThatNeedsToBe": {
    "message": "Has a blending effect that needs to be known by compositor because of composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasAClipThatNeedsToBeKnownBy": {
    "message": "Has a clip that needs to be known by compositor because of composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasADTransform": {
    "message": "Has a 3d transform."
  },
  "layer_viewer/LayerDetailsView.js | hasAFilterEffectThatNeedsToBe": {
    "message": "Has a filter effect that needs to be known by compositor because of composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasAMaskThatNeedsToBeKnownBy": {
    "message": "Has a mask that needs to be known by compositor because of composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasAnActiveAcceleratedBackdrop": {
    "message": "Has an active accelerated backdrop filter animation or transition."
  },
  "layer_viewer/LayerDetailsView.js | hasAnActiveAcceleratedFilter": {
    "message": "Has an active accelerated filter animation or transition."
  },
  "layer_viewer/LayerDetailsView.js | hasAnActiveAcceleratedOpacity": {
    "message": "Has an active accelerated opacity animation or transition."
  },
  "layer_viewer/LayerDetailsView.js | hasAnActiveAcceleratedTransform": {
    "message": "Has an active accelerated transform animation or transition."
  },
  "layer_viewer/LayerDetailsView.js | hasAPerspectiveTransformThat": {
    "message": "Has a perspective transform that needs to be known by compositor because of 3d descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasAPreservesdPropertyThatNeeds": {
    "message": "Has a preserves-3d property that needs to be known by compositor because of 3d descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasAReflectionThatNeedsToBeKnown": {
    "message": "Has a reflection that needs to be known by compositor because of composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | hasAWillchangeCompositingHint": {
    "message": "Has a will-change compositing hint other than transform and opacity."
  },
  "layer_viewer/LayerDetailsView.js | hasAWillchangeOpacityCompositing": {
    "message": "Has a will-change: opacity compositing hint."
  },
  "layer_viewer/LayerDetailsView.js | hasAWillchangeTransform": {
    "message": "Has a will-change: transform compositing hint."
  },
  "layer_viewer/LayerDetailsView.js | hasBackfacevisibilityHidden": {
    "message": "Has backface-visibility: hidden."
  },
  "layer_viewer/LayerDetailsView.js | hasClippingAncestor": {
    "message": "Has clipping ancestor."
  },
  "layer_viewer/LayerDetailsView.js | hasOpacityThatNeedsToBeAppliedBy": {
    "message": "Has opacity that needs to be applied by compositor because of composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | isAnAcceleratedCanvasOrIsA": {
    "message": "Is an accelerated canvas, or is a display list backed canvas that was promoted to a layer based on a performance heuristic."
  },
  "layer_viewer/LayerDetailsView.js | isAnAcceleratedIframe": {
    "message": "Is an accelerated iFrame."
  },
  "layer_viewer/LayerDetailsView.js | isAnAcceleratedPlugin": {
    "message": "Is an accelerated plugin."
  },
  "layer_viewer/LayerDetailsView.js | isAnAcceleratedVideo": {
    "message": "Is an accelerated video."
  },
  "layer_viewer/LayerDetailsView.js | isAPositionfixedElementWith": {
    "message": "Is a position:fixed element with composited descendants."
  },
  "layer_viewer/LayerDetailsView.js | isAScrollableOverflowElement": {
    "message": "Is a scrollable overflow element."
  },
  "layer_viewer/LayerDetailsView.js | isDomOverlayForWebxrImmersivear": {
    "message": "Is DOM overlay for WebXR immersive-ar mode."
  },
  "layer_viewer/LayerDetailsView.js | isFixedOrStickyPosition": {
    "message": "Is fixed or sticky position."
  },
  "layer_viewer/LayerDetailsView.js | isOverlayControlsForVideo": {
    "message": "Is overlay controls for video."
  },
  "layer_viewer/LayerDetailsView.js | isTheDocumentrootscroller": {
    "message": "Is the document.rootScroller."
  },
  "layer_viewer/LayerDetailsView.js | isTheRootLayer": {
    "message": "Is the root layer."
  },
  "layer_viewer/LayerDetailsView.js | layerForLinkHighlightFrame": {
    "message": "Layer for link highlight, frame overlay, etc."
  },
  "layer_viewer/LayerDetailsView.js | layerPaintedOnTopOfOtherLayersAs": {
    "message": "Layer painted on top of other layers as decoration."
  },
  "layer_viewer/LayerDetailsView.js | layerWasSeparatelyComposited": {
    "message": "Layer was separately composited because it could not be squashed."
  },
  "layer_viewer/LayerDetailsView.js | mainThreadScrollingReason": {
    "message": "Main thread scrolling reason"
  },
  "layer_viewer/LayerDetailsView.js | memoryEstimate": {
    "message": "Memory estimate"
  },
  "layer_viewer/LayerDetailsView.js | mightOverlapOtherComposited": {
    "message": "Might overlap other composited content."
  },
  "layer_viewer/LayerDetailsView.js | nearestLayerShiftingContaining": {
    "message": "Nearest Layer Shifting Containing Block"
  },
  "layer_viewer/LayerDetailsView.js | nearestLayerShiftingStickyBox": {
    "message": "Nearest Layer Shifting Sticky Box"
  },
  "layer_viewer/LayerDetailsView.js | nonFastScrollable": {
    "message": "Non fast scrollable"
  },
  "layer_viewer/LayerDetailsView.js | overlapsOtherCompositedContent": {
    "message": "Overlaps other composited content."
  },
  "layer_viewer/LayerDetailsView.js | paintCount": {
    "message": "Paint count"
  },
  "layer_viewer/LayerDetailsView.js | paintProfiler": {
    "message": "Paint Profiler"
  },
  "layer_viewer/LayerDetailsView.js | parentWithCompositedNegative": {
    "message": "Parent with composited negative z-index content."
  },
  "layer_viewer/LayerDetailsView.js | repaintsOnScroll": {
    "message": "Repaints on scroll"
  },
  "layer_viewer/LayerDetailsView.js | scrollParentIsNotAnAncestor": {
    "message": "Scroll parent is not an ancestor."
  },
  "layer_viewer/LayerDetailsView.js | scrollRectangleDimensions": {
    "message": "{PH1} {PH2} × {PH3} (at {PH4}, {PH5})"
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerHomeForAGroupOf": {
    "message": "Secondary layer, home for a group of squashable content."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerNoopLayerToPlace": {
    "message": "Secondary layer, no-op layer to place the squashing layer correctly in the composited layer tree."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerTheHorizontal": {
    "message": "Secondary layer, the horizontal scrollbar layer."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerTheOverflow": {
    "message": "Secondary layer, the overflow controls host layer."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerTheScrollCorner": {
    "message": "Secondary layer, the scroll corner layer."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerTheVertical": {
    "message": "Secondary layer, the vertical scrollbar layer."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerToContainAnyNormal": {
    "message": "Secondary layer, to contain any normal flow and positive z-index contents on top of a negative z-index layer."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerToContainTheMask": {
    "message": "Secondary layer, to contain the mask contents."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerToHouseContents": {
    "message": "Secondary layer, to house contents that can be scrolled."
  },
  "layer_viewer/LayerDetailsView.js | secondaryLayerUsedToPositionThe": {
    "message": "Secondary layer, used to position the scrolling contents while scrolling."
  },
  "layer_viewer/LayerDetailsView.js | selectALayerToSeeItsDetails": {
    "message": "Select a layer to see its details"
  },
  "layer_viewer/LayerDetailsView.js | shouldIsolateDescendantsToApplyA": {
    "message": "Should isolate descendants to apply a blend effect."
  },
  "layer_viewer/LayerDetailsView.js | size": {
    "message": "Size"
  },
  "layer_viewer/LayerDetailsView.js | slowScrollRegions": {
    "message": "Slow scroll regions"
  },
  "layer_viewer/LayerDetailsView.js | stickyAncenstorLayersS": {
    "message": "{PH1}: {PH2} ({PH3})"
  },
  "layer_viewer/LayerDetailsView.js | stickyBoxRectangleDimensions": {
    "message": "Sticky Box {PH1} × {PH2} (at {PH3}, {PH4})"
  },
  "layer_viewer/LayerDetailsView.js | stickyPositionConstraint": {
    "message": "Sticky position constraint"
  },
  "layer_viewer/LayerDetailsView.js | touchEventHandler": {
    "message": "Touch event handler"
  },
  "layer_viewer/LayerDetailsView.js | unnamed": {
    "message": "<unnamed>"
  },
  "layer_viewer/LayerDetailsView.js | updateRectangleDimensions": {
    "message": "{PH1} × {PH2} (at {PH3},{PH4})"
  },
  "layer_viewer/LayerDetailsView.js | wheelEventHandler": {
    "message": "Wheel event handler"
  },
  "layer_viewer/Layers3DView.js | cantDisplayLayers": {
    "message": "Can't display layers,"
  },
  "layer_viewer/Layers3DView.js | checkSForPossibleReasons": {
    "message": "Check {PH1} for possible reasons."
  },
  "layer_viewer/Layers3DView.js | dLayersView": {
    "message": "3D Layers View"
  },
  "layer_viewer/Layers3DView.js | layerInformationIsNotYet": {
    "message": "Layer information is not yet available."
  },
  "layer_viewer/Layers3DView.js | mousewheelEventListener": {
    "message": "mousewheel event listener"
  },
  "layer_viewer/Layers3DView.js | paints": {
    "message": "Paints"
  },
  "layer_viewer/Layers3DView.js | repaintsOnScroll": {
    "message": "repaints on scroll"
  },
  "layer_viewer/Layers3DView.js | resetView": {
    "message": "Reset View"
  },
  "layer_viewer/Layers3DView.js | showPaintProfiler": {
    "message": "Show Paint Profiler"
  },
  "layer_viewer/Layers3DView.js | slowScrollRects": {
    "message": "Slow scroll rects"
  },
  "layer_viewer/Layers3DView.js | touchEventListener": {
    "message": "touch event listener"
  },
  "layer_viewer/Layers3DView.js | webglSupportIsDisabledInYour": {
    "message": "WebGL support is disabled in your browser."
  },
  "layer_viewer/LayerTreeOutline.js | layersTreePane": {
    "message": "Layers Tree Pane"
  },
  "layer_viewer/LayerTreeOutline.js | showPaintProfiler": {
    "message": "Show Paint Profiler"
  },
  "layer_viewer/LayerTreeOutline.js | updateChildDimension": {
    "message": " ({PH1} × {PH2})"
  },
  "layer_viewer/LayerViewHost.js | showInternalLayers": {
    "message": "Show internal layers"
  },
  "layer_viewer/ModuleUIStrings.js | layers": {
    "message": "Layers"
  },
  "layer_viewer/ModuleUIStrings.js | panOrRotateDown": {
    "message": "Pan or rotate down"
  },
  "layer_viewer/ModuleUIStrings.js | panOrRotateLeft": {
    "message": "Pan or rotate left"
  },
  "layer_viewer/ModuleUIStrings.js | panOrRotateRight": {
    "message": "Pan or rotate right"
  },
  "layer_viewer/ModuleUIStrings.js | panOrRotateUp": {
    "message": "Pan or rotate up"
  },
  "layer_viewer/ModuleUIStrings.js | resetView": {
    "message": "Reset view"
  },
  "layer_viewer/ModuleUIStrings.js | switchToPanMode": {
    "message": "Switch to pan mode"
  },
  "layer_viewer/ModuleUIStrings.js | switchToRotateMode": {
    "message": "Switch to rotate mode"
  },
  "layer_viewer/ModuleUIStrings.js | zoomIn": {
    "message": "Zoom in"
  },
  "layer_viewer/ModuleUIStrings.js | zoomOut": {
    "message": "Zoom out"
  },
  "layer_viewer/PaintProfilerView.js | bitmap": {
    "message": "Bitmap"
  },
  "layer_viewer/PaintProfilerView.js | commandLog": {
    "message": "Command Log"
  },
  "layer_viewer/PaintProfilerView.js | misc": {
    "message": "Misc"
  },
  "layer_viewer/PaintProfilerView.js | profiling": {
    "message": "Profiling…"
  },
  "layer_viewer/PaintProfilerView.js | profilingResults": {
    "message": "Profiling results"
  },
  "layer_viewer/PaintProfilerView.js | shapes": {
    "message": "Shapes"
  },
  "layer_viewer/PaintProfilerView.js | text": {
    "message": "Text"
  },
  "layer_viewer/TransformController.js | panModeX": {
    "message": "Pan mode (X)"
  },
  "layer_viewer/TransformController.js | resetTransform": {
    "message": "Reset transform (0)"
  },
  "layer_viewer/TransformController.js | rotateModeV": {
    "message": "Rotate mode (V)"
  },
  "layers/LayersPanel.js | details": {
    "message": "Details"
  },
  "layers/LayersPanel.js | profiler": {
    "message": "Profiler"
  },
  "layers/ModuleUIStrings.js | layers": {
    "message": "Layers"
  },
  "lighthouse/LighthouseController.js | accessibility": {
    "message": "Accessibility"
  },
  "lighthouse/LighthouseController.js | applyMobileEmulation": {
    "message": "Apply mobile emulation"
  },
  "lighthouse/LighthouseController.js | applyMobileEmulationDuring": {
    "message": "Apply mobile emulation during auditing"
  },
  "lighthouse/LighthouseController.js | atLeastOneCategoryMustBeSelected": {
    "message": "At least one category must be selected."
  },
  "lighthouse/LighthouseController.js | bestPractices": {
    "message": "Best practices"
  },
  "lighthouse/LighthouseController.js | canOnlyAuditHttphttpsPagesAnd": {
    "message": "Can only audit HTTP/HTTPS pages and Chrome extensions. Navigate to a different page to start an audit."
  },
  "lighthouse/LighthouseController.js | clearStorage": {
    "message": "Clear storage"
  },
  "lighthouse/LighthouseController.js | desktop": {
    "message": "Desktop"
  },
  "lighthouse/LighthouseController.js | doesThisPageFollowBestPractices": {
    "message": "Does this page follow best practices for modern web development"
  },
  "lighthouse/LighthouseController.js | doesThisPageMeetTheStandardOfA": {
    "message": "Does this page meet the standard of a Progressive Web App"
  },
  "lighthouse/LighthouseController.js | howLongDoesThisAppTakeToShow": {
    "message": "How long does this app take to show content and become usable"
  },
  "lighthouse/LighthouseController.js | indexeddb": {
    "message": "IndexedDB"
  },
  "lighthouse/LighthouseController.js | isThisPageOptimizedForAdSpeedAnd": {
    "message": "Is this page optimized for ad speed and quality"
  },
  "lighthouse/LighthouseController.js | isThisPageOptimizedForSearch": {
    "message": "Is this page optimized for search engine results ranking"
  },
  "lighthouse/LighthouseController.js | isThisPageUsableByPeopleWith": {
    "message": "Is this page usable by people with disabilities or impairments"
  },
  "lighthouse/LighthouseController.js | localStorage": {
    "message": "Local Storage"
  },
  "lighthouse/LighthouseController.js | mobile": {
    "message": "Mobile"
  },
  "lighthouse/LighthouseController.js | multipleTabsAreBeingControlledBy": {
    "message": "Multiple tabs are being controlled by the same service worker. Close your other tabs on the same origin to audit this page."
  },
  "lighthouse/LighthouseController.js | performance": {
    "message": "Performance"
  },
  "lighthouse/LighthouseController.js | progressiveWebApp": {
    "message": "Progressive Web App"
  },
  "lighthouse/LighthouseController.js | publisherAds": {
    "message": "Publisher Ads"
  },
  "lighthouse/LighthouseController.js | resetStorageLocalstorage": {
    "message": "Reset storage (localStorage, IndexedDB, etc) before auditing. (Good for performance & PWA testing)"
  },
  "lighthouse/LighthouseController.js | seo": {
    "message": "SEO"
  },
  "lighthouse/LighthouseController.js | simulateASlowerPageLoadBasedOn": {
    "message": "Simulate a slower page load, based on data from an initial unthrottled load. If disabled, the page is actually slowed with applied throttling."
  },
  "lighthouse/LighthouseController.js | simulatedThrottling": {
    "message": "Simulated throttling"
  },
  "lighthouse/LighthouseController.js | thereMayBeStoredDataAffectingLoadingPlural": {
    "message": "There may be stored data affecting loading performance in these locations: {PH1}. Audit this page in an incognito window to prevent those resources from affecting your scores."
  },
  "lighthouse/LighthouseController.js | thereMayBeStoredDataAffectingSingular": {
    "message": "There may be stored data affecting loading performance in this location: {PH1}. Audit this page in an incognito window to prevent those resources from affecting your scores."
  },
  "lighthouse/LighthouseController.js | webSql": {
    "message": "Web SQL"
  },
  "lighthouse/LighthousePanel.js | cancelling": {
    "message": "Cancelling"
  },
  "lighthouse/LighthousePanel.js | clearAll": {
    "message": "Clear all"
  },
  "lighthouse/LighthousePanel.js | dropLighthouseJsonHere": {
    "message": "Drop Lighthouse JSON here"
  },
  "lighthouse/LighthousePanel.js | lighthouseSettings": {
    "message": "Lighthouse settings"
  },
  "lighthouse/LighthousePanel.js | performAnAudit": {
    "message": "Perform an audit…"
  },
  "lighthouse/LighthousePanel.js | printing": {
    "message": "Printing"
  },
  "lighthouse/LighthousePanel.js | thePrintPopupWindowIsOpenPlease": {
    "message": "The print popup window is open. Please close it to continue."
  },
  "lighthouse/LighthouseReportRenderer.js | thePerformanceMetricsAboveAre": {
    "message": "The performance metrics above are simulated and won't match the timings found in this trace. Disable simulated throttling in \"Lighthouse Settings\" if you want the timings to match."
  },
  "lighthouse/LighthouseReportRenderer.js | viewOriginalTrace": {
    "message": "View Original Trace"
  },
  "lighthouse/LighthouseReportRenderer.js | viewTrace": {
    "message": "View Trace"
  },
  "lighthouse/LighthouseReportSelector.js | newReport": {
    "message": "(new report)"
  },
  "lighthouse/LighthouseReportSelector.js | reports": {
    "message": "Reports"
  },
  "lighthouse/LighthouseStartView.js | categories": {
    "message": "Categories"
  },
  "lighthouse/LighthouseStartView.js | communityPluginsBeta": {
    "message": "Community Plugins (beta)"
  },
  "lighthouse/LighthouseStartView.js | device": {
    "message": "Device"
  },
  "lighthouse/LighthouseStartView.js | generateReport": {
    "message": "Generate report"
  },
  "lighthouse/LighthouseStartView.js | identifyAndFixCommonProblemsThat": {
    "message": "Identify and fix common problems that affect your site's performance, accessibility, and user experience."
  },
  "lighthouse/LighthouseStartView.js | learnMore": {
    "message": "Learn more"
  },
  "lighthouse/LighthouseStatusView.js | ahSorryWeRanIntoAnError": {
    "message": "Ah, sorry! We ran into an error."
  },
  "lighthouse/LighthouseStatusView.js | almostThereLighthouseIsNow": {
    "message": "Almost there! Lighthouse is now generating your report."
  },
  "lighthouse/LighthouseStatusView.js | asPageLoadTimeIncreasesFromOne": {
    "message": "As page load time increases from one second to seven seconds, the probability of a mobile site visitor bouncing increases 113%. [Source: Think with Google]"
  },
  "lighthouse/LighthouseStatusView.js | asTheNumberOfElementsOnAPage": {
    "message": "As the number of elements on a page increases from 400 to 6,000, the probability of conversion drops 95%. [Source: Think with Google]"
  },
  "lighthouse/LighthouseStatusView.js | auditingS": {
    "message": "Auditing {PH1}"
  },
  "lighthouse/LighthouseStatusView.js | auditingYourWebPage": {
    "message": "Auditing your web page"
  },
  "lighthouse/LighthouseStatusView.js | byReducingTheResponseSizeOfJson": {
    "message": "By reducing the response size of JSON needed for displaying comments, Instagram saw increased impressions [Source: WPO Stats]"
  },
  "lighthouse/LighthouseStatusView.js | cancel": {
    "message": "Cancel"
  },
  "lighthouse/LighthouseStatusView.js | cancelling": {
    "message": "Cancelling…"
  },
  "lighthouse/LighthouseStatusView.js | fastFactMessageWithPlaceholder": {
    "message": "💡 {PH1}"
  },
  "lighthouse/LighthouseStatusView.js | ifASiteTakesSecondToBecome": {
    "message": "If a site takes >1 second to become interactive, users lose attention, and their perception of completing the page task is broken [Source: Google Developers Blog]"
  },
  "lighthouse/LighthouseStatusView.js | ifThisIssueIsReproduciblePlease": {
    "message": "If this issue is reproducible, please report it at the Lighthouse GitHub repo."
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsGatheringInformation": {
    "message": "Lighthouse is gathering information about the page to compute your score."
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsLoadingThePage": {
    "message": "Lighthouse is loading the page."
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsLoadingYourPage": {
    "message": "Lighthouse is loading your page"
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsLoadingYourPageWith": {
    "message": "Lighthouse is loading your page with throttling to measure performance on a mobile device on 3G."
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsLoadingYourPageWithMobile": {
    "message": "Lighthouse is loading your page with mobile emulation."
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsLoadingYourPageWithThrottling": {
    "message": "Lighthouse is loading your page with throttling to measure performance on a slow desktop on 3G."
  },
  "lighthouse/LighthouseStatusView.js | lighthouseIsWarmingUp": {
    "message": "Lighthouse is warming up…"
  },
  "lighthouse/LighthouseStatusView.js | lighthouseOnlySimulatesMobile": {
    "message": "Lighthouse only simulates mobile performance; to measure performance on a real device, try WebPageTest.org [Source: Lighthouse team]"
  },
  "lighthouse/LighthouseStatusView.js | loading": {
    "message": "Loading…"
  },
  "lighthouse/LighthouseStatusView.js | mbTakesAMinimumOfSecondsTo": {
    "message": "1MB takes a minimum of 5 seconds to download on a typical 3G connection [Source: WebPageTest and DevTools 3G definition]."
  },
  "lighthouse/LighthouseStatusView.js | OfGlobalMobileUsersInWereOnGOrG": {
    "message": "75% of global mobile users in 2016 were on 2G or 3G [Source: GSMA Mobile]"
  },
  "lighthouse/LighthouseStatusView.js | OfMobilePagesTakeNearlySeconds": {
    "message": "70% of mobile pages take nearly 7 seconds for the visual content above the fold to display on the screen. [Source: Think with Google]"
  },
  "lighthouse/LighthouseStatusView.js | rebuildingPinterestPagesFor": {
    "message": "Rebuilding Pinterest pages for performance increased conversion rates by 15% [Source: WPO Stats]"
  },
  "lighthouse/LighthouseStatusView.js | SecondsIsTheAverageTimeAMobile": {
    "message": "19 seconds is the average time a mobile web page takes to load on a 3G connection [Source: Google DoubleClick blog]"
  },
  "lighthouse/LighthouseStatusView.js | theAverageUserDeviceCostsLess": {
    "message": "The average user device costs less than 200 USD. [Source: International Data Corporation]"
  },
  "lighthouse/LighthouseStatusView.js | tryToNavigateToTheUrlInAFresh": {
    "message": "Try to navigate to the URL in a fresh Chrome profile without any other tabs or extensions open and try again."
  },
  "lighthouse/LighthouseStatusView.js | walmartSawAIncreaseInRevenueFor": {
    "message": "Walmart saw a 1% increase in revenue for every 100ms improvement in page load [Source: WPO Stats]"
  },
  "lighthouse/ModuleUIStrings.js | pwa": {
    "message": "pwa"
  },
  "performance_monitor/ModuleUIStrings.js | activity": {
    "message": "activity"
  },
  "performance_monitor/ModuleUIStrings.js | metrics": {
    "message": "metrics"
  },
  "performance_monitor/ModuleUIStrings.js | monitor": {
    "message": "monitor"
  },
  "performance_monitor/ModuleUIStrings.js | performance": {
    "message": "performance"
  },
  "performance_monitor/ModuleUIStrings.js | performanceMonitor": {
    "message": "Performance monitor"
  },
  "performance_monitor/ModuleUIStrings.js | systemMonitor": {
    "message": "system monitor"
  },
  "performance_monitor/PerformanceMonitor.js | cpuUsage": {
    "message": "CPU usage"
  },
  "performance_monitor/PerformanceMonitor.js | documentFrames": {
    "message": "Document Frames"
  },
  "performance_monitor/PerformanceMonitor.js | documents": {
    "message": "Documents"
  },
  "performance_monitor/PerformanceMonitor.js | domNodes": {
    "message": "DOM Nodes"
  },
  "performance_monitor/PerformanceMonitor.js | graphsDisplayingARealtimeViewOf": {
    "message": "Graphs displaying a real-time view of performance metrics"
  },
  "performance_monitor/PerformanceMonitor.js | jsEventListeners": {
    "message": "JS event listeners"
  },
  "performance_monitor/PerformanceMonitor.js | jsHeapSize": {
    "message": "JS heap size"
  },
  "performance_monitor/PerformanceMonitor.js | layoutsSec": {
    "message": "Layouts / sec"
  },
  "performance_monitor/PerformanceMonitor.js | paused": {
    "message": "Paused"
  },
  "performance_monitor/PerformanceMonitor.js | styleRecalcsSec": {
    "message": "Style recalcs / sec"
  },
  "recorder/RecordingFileSystem.js | defaultRecordingName": {
    "message": "Recording #{nextId}"
  },
  "resources/ClearStorageView.js | storageQuotaUsed": {
    "message": "{PH1} used out of {PH2} storage quota"
  },
  "resources/ClearStorageView.js | storageQuotaUsedWithBytes": {
    "message": "{PH1} bytes used out of {PH2} bytes storage quota"
  },
  "resources/ClearStorageView.js | storageWithCustomMarker": {
    "message": "{PH1} (custom)"
  },
  "search/SearchResultsPane.js | lineS": {
    "message": "Line {PH1}"
  },
  "search/SearchResultsPane.js | matchesCountS": {
    "message": "Matches Count {PH1}"
  },
  "search/SearchResultsPane.js | showDMore": {
    "message": "Show {PH1} more"
  },
  "search/SearchView.js | clear": {
    "message": "Clear"
  },
  "search/SearchView.js | foundDMatchingLinesInDFiles": {
    "message": "Found {PH1} matching lines in {PH2} files."
  },
  "search/SearchView.js | foundDMatchingLinesInFile": {
    "message": "Found {PH1} matching lines in 1 file."
  },
  "search/SearchView.js | foundMatchingLineInFile": {
    "message": "Found 1 matching line in 1 file."
  },
  "search/SearchView.js | indexing": {
    "message": "Indexing…"
  },
  "search/SearchView.js | indexingInterrupted": {
    "message": "Indexing interrupted."
  },
  "search/SearchView.js | matchCase": {
    "message": "Match Case"
  },
  "search/SearchView.js | noMatchesFound": {
    "message": "No matches found."
  },
  "search/SearchView.js | refresh": {
    "message": "Refresh"
  },
  "search/SearchView.js | search": {
    "message": "Search"
  },
  "search/SearchView.js | searchFinished": {
    "message": "Search finished."
  },
  "search/SearchView.js | searching": {
    "message": "Searching…"
  },
  "search/SearchView.js | searchInterrupted": {
    "message": "Search interrupted."
  },
  "search/SearchView.js | searchQuery": {
    "message": "Search Query"
  },
  "search/SearchView.js | useRegularExpression": {
    "message": "Use Regular Expression"
  },
  "security/ModuleUIStrings.js | security": {
    "message": "Security"
  },
  "security/SecurityModel.js | cipherWithMAC": {
    "message": "{PH1} with {PH2}"
  },
  "security/SecurityModel.js | keyExchangeWithGroup": {
    "message": "{PH1} with {PH2}"
  },
  "security/SecurityModel.js | theSecurityOfThisPageIsUnknown": {
    "message": "The security of this page is unknown."
  },
  "security/SecurityModel.js | thisPageIsNotSecure": {
    "message": "This page is not secure."
  },
  "security/SecurityModel.js | thisPageIsNotSecureBrokenHttps": {
    "message": "This page is not secure (broken HTTPS)."
  },
  "security/SecurityModel.js | thisPageIsSecureValidHttps": {
    "message": "This page is secure (valid HTTPS)."
  },
  "security/SecurityPanel.js | activeContentWithCertificate": {
    "message": "active content with certificate errors"
  },
  "security/SecurityPanel.js | activeMixedContent": {
    "message": "active mixed content"
  },
  "security/SecurityPanel.js | allResourcesOnThisPageAreServed": {
    "message": "All resources on this page are served securely."
  },
  "security/SecurityPanel.js | allServedSecurely": {
    "message": "all served securely"
  },
  "security/SecurityPanel.js | blockedMixedContent": {
    "message": "Blocked mixed content"
  },
  "security/SecurityPanel.js | certificate": {
    "message": "Certificate"
  },
  "security/SecurityPanel.js | certificateExpiresSoon": {
    "message": "Certificate expires soon"
  },
  "security/SecurityPanel.js | certificateTransparency": {
    "message": "Certificate Transparency"
  },
  "security/SecurityPanel.js | chromeHasDeterminedThatThisSite": {
    "message": "Chrome has determined that this site could be fake or fraudulent.\n\nIf you believe this is shown in error please visit https://bugs.chromium.org/p/chromium/issues/entry?template=Safety+Tips+Appeals."
  },
  "security/SecurityPanel.js | cipher": {
    "message": "Cipher"
  },
  "security/SecurityPanel.js | connection": {
    "message": "Connection"
  },
  "security/SecurityPanel.js | contentWithCertificateErrors": {
    "message": "content with certificate errors"
  },
  "security/SecurityPanel.js | dataWasEnteredInAFieldOnA": {
    "message": "Data was entered in a field on a non-secure page. A warning has been added to the URL bar."
  },
  "security/SecurityPanel.js | flaggedByGoogleSafeBrowsing": {
    "message": "Flagged by Google Safe Browsing"
  },
  "security/SecurityPanel.js | formFieldEditedOnANonsecurePage": {
    "message": "Form field edited on a non-secure page"
  },
  "security/SecurityPanel.js | hashAlgorithm": {
    "message": "Hash algorithm"
  },
  "security/SecurityPanel.js | hideFullDetails": {
    "message": "Hide full details"
  },
  "security/SecurityPanel.js | info": {
    "message": "Info"
  },
  "security/SecurityPanel.js | insecureSha": {
    "message": "insecure (SHA-1)"
  },
  "security/SecurityPanel.js | issuedAt": {
    "message": "Issued at"
  },
  "security/SecurityPanel.js | issuer": {
    "message": "Issuer"
  },
  "security/SecurityPanel.js | keyExchange": {
    "message": "Key exchange"
  },
  "security/SecurityPanel.js | keyExchangeGroup": {
    "message": "Key exchange group"
  },
  "security/SecurityPanel.js | logId": {
    "message": "Log ID"
  },
  "security/SecurityPanel.js | logName": {
    "message": "Log name"
  },
  "security/SecurityPanel.js | mainOrigin": {
    "message": "Main origin"
  },
  "security/SecurityPanel.js | mainOriginNonsecure": {
    "message": "Main origin (non-secure)"
  },
  "security/SecurityPanel.js | mainOriginSecure": {
    "message": "Main origin (secure)"
  },
  "security/SecurityPanel.js | missing": {
    "message": "missing"
  },
  "security/SecurityPanel.js | mixedContent": {
    "message": "mixed content"
  },
  "security/SecurityPanel.js | na": {
    "message": "(n/a)"
  },
  "security/SecurityPanel.js | nonsecureForm": {
    "message": "non-secure form"
  },
  "security/SecurityPanel.js | nonsecureOrigins": {
    "message": "Non-secure origins"
  },
  "security/SecurityPanel.js | noSecurityDetailsAreAvailableFor": {
    "message": "No security details are available for this origin."
  },
  "security/SecurityPanel.js | noSecurityInformation": {
    "message": "No security information"
  },
  "security/SecurityPanel.js | notSecure": {
    "message": "Not secure"
  },
  "security/SecurityPanel.js | notSecureBroken": {
    "message": "Not secure (broken)"
  },
  "security/SecurityPanel.js | obsoleteConnectionSettings": {
    "message": "obsolete connection settings"
  },
  "security/SecurityPanel.js | openFullCertificateDetails": {
    "message": "Open full certificate details"
  },
  "security/SecurityPanel.js | origin": {
    "message": "Origin"
  },
  "security/SecurityPanel.js | overview": {
    "message": "Overview"
  },
  "security/SecurityPanel.js | possibleSpoofingUrl": {
    "message": "Possible spoofing URL"
  },
  "security/SecurityPanel.js | protocol": {
    "message": "Protocol"
  },
  "security/SecurityPanel.js | publickeypinningBypassed": {
    "message": "Public-Key-Pinning bypassed"
  },
  "security/SecurityPanel.js | publickeypinningWasBypassedByA": {
    "message": "Public-Key-Pinning was bypassed by a local root certificate."
  },
  "security/SecurityPanel.js | reloadThePageToRecordRequestsFor": {
    "message": "Reload the page to record requests for HTTP resources."
  },
  "security/SecurityPanel.js | reloadToViewDetails": {
    "message": "Reload to view details"
  },
  "security/SecurityPanel.js | resources": {
    "message": "Resources"
  },
  "security/SecurityPanel.js | rsaKeyExchangeIsObsoleteEnableAn": {
    "message": "RSA key exchange is obsolete. Enable an ECDHE-based cipher suite."
  },
  "security/SecurityPanel.js | san": {
    "message": "SAN"
  },
  "security/SecurityPanel.js | sct": {
    "message": "SCT"
  },
  "security/SecurityPanel.js | secure": {
    "message": "Secure"
  },
  "security/SecurityPanel.js | secureConnectionSettings": {
    "message": "secure connection settings"
  },
  "security/SecurityPanel.js | secureOrigins": {
    "message": "Secure origins"
  },
  "security/SecurityPanel.js | securityOverview": {
    "message": "Security overview"
  },
  "security/SecurityPanel.js | showFullDetails": {
    "message": "Show full details"
  },
  "security/SecurityPanel.js | showLess": {
    "message": "Show less"
  },
  "security/SecurityPanel.js | showMoreSTotal": {
    "message": "Show more ({PH1} total)"
  },
  "security/SecurityPanel.js | signatureAlgorithm": {
    "message": "Signature algorithm"
  },
  "security/SecurityPanel.js | signatureData": {
    "message": "Signature data"
  },
  "security/SecurityPanel.js | sIsObsoleteEnableAnAesgcmbased": {
    "message": "{PH1} is obsolete. Enable an AES-GCM-based cipher suite."
  },
  "security/SecurityPanel.js | sIsObsoleteEnableTlsOrLater": {
    "message": "{PH1} is obsolete. Enable TLS 1.2 or later."
  },
  "security/SecurityPanel.js | source": {
    "message": "Source"
  },
  "security/SecurityPanel.js | subject": {
    "message": "Subject"
  },
  "security/SecurityPanel.js | subjectAlternativeNameMissing": {
    "message": "Subject Alternative Name missing"
  },
  "security/SecurityPanel.js | theCertificateChainForThisSite": {
    "message": "The certificate chain for this site contains a certificate signed using SHA-1."
  },
  "security/SecurityPanel.js | theCertificateForThisSiteDoesNot": {
    "message": "The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address."
  },
  "security/SecurityPanel.js | theCertificateForThisSiteExpires": {
    "message": "The certificate for this site expires in less than 48 hours and needs to be renewed."
  },
  "security/SecurityPanel.js | theConnectionToThisSiteIs": {
    "message": "The connection to this site is encrypted and authenticated using {PH1}, {PH2}, and {PH3}."
  },
  "security/SecurityPanel.js | theConnectionToThisSiteIsUsingA": {
    "message": "The connection to this site is using a valid, trusted server certificate issued by {PH1}."
  },
  "security/SecurityPanel.js | theSecurityDetailsAboveAreFrom": {
    "message": "The security details above are from the first inspected response."
  },
  "security/SecurityPanel.js | theSecurityOfThisPageIsUnknown": {
    "message": "The security of this page is unknown."
  },
  "security/SecurityPanel.js | theServerSignatureUsesShaWhichIs": {
    "message": "The server signature uses SHA-1, which is obsolete. Enable a SHA-2 signature algorithm instead. (Note this is different from the signature in the certificate.)"
  },
  "security/SecurityPanel.js | thisIsAnErrorPage": {
    "message": "This is an error page."
  },
  "security/SecurityPanel.js | thisOriginIsANonhttpsSecure": {
    "message": "This origin is a non-HTTPS secure origin."
  },
  "security/SecurityPanel.js | thisPageHasANonhttpsSecureOrigin": {
    "message": "This page has a non-HTTPS secure origin."
  },
  "security/SecurityPanel.js | thisPageIncludesAFormWithA": {
    "message": "This page includes a form with a non-secure \"action\" attribute."
  },
  "security/SecurityPanel.js | thisPageIncludesHttpResources": {
    "message": "This page includes HTTP resources."
  },
  "security/SecurityPanel.js | thisPageIncludesResourcesThat": {
    "message": "This page includes resources that were loaded with certificate errors."
  },
  "security/SecurityPanel.js | thisPageIsDangerousFlaggedBy": {
    "message": "This page is dangerous (flagged by Google Safe Browsing)."
  },
  "security/SecurityPanel.js | thisPageIsInsecureUnencrypted": {
    "message": "This page is insecure (unencrypted HTTP)."
  },
  "security/SecurityPanel.js | thisPageIsNotSecure": {
    "message": "This page is not secure."
  },
  "security/SecurityPanel.js | thisPageIsNotSecureBrokenHttps": {
    "message": "This page is not secure (broken HTTPS)."
  },
  "security/SecurityPanel.js | thisPageIsSecureValidHttps": {
    "message": "This page is secure (valid HTTPS)."
  },
  "security/SecurityPanel.js | thisPageIsSuspicious": {
    "message": "This page is suspicious"
  },
  "security/SecurityPanel.js | thisPageIsSuspiciousFlaggedBy": {
    "message": "This page is suspicious (flagged by Chrome)."
  },
  "security/SecurityPanel.js | thisRequestCompliesWithChromes": {
    "message": "This request complies with Chrome's Certificate Transparency policy."
  },
  "security/SecurityPanel.js | thisRequestDoesNotComplyWith": {
    "message": "This request does not comply with Chrome's Certificate Transparency policy."
  },
  "security/SecurityPanel.js | thisResponseWasLoadedFromCache": {
    "message": "This response was loaded from cache. Some security details might be missing."
  },
  "security/SecurityPanel.js | thisSiteIsMissingAValidTrusted": {
    "message": "This site is missing a valid, trusted certificate ({PH1})."
  },
  "security/SecurityPanel.js | thisSitesHostnameLooksSimilarToS": {
    "message": "This site's hostname looks similar to {PH1}. Attackers sometimes mimic sites by making small, hard-to-see changes to the domain name.\n\nIf you believe this is shown in error please visit https://bugs.chromium.org/p/chromium/issues/entry?template=Safety+Tips+Appeals."
  },
  "security/SecurityPanel.js | toCheckThisPagesStatusVisit": {
    "message": "To check this page's status, visit g.co/safebrowsingstatus."
  },
  "security/SecurityPanel.js | unknownCanceled": {
    "message": "Unknown / canceled"
  },
  "security/SecurityPanel.js | validAndTrusted": {
    "message": "valid and trusted"
  },
  "security/SecurityPanel.js | validationStatus": {
    "message": "Validation status"
  },
  "security/SecurityPanel.js | validFrom": {
    "message": "Valid from"
  },
  "security/SecurityPanel.js | validUntil": {
    "message": "Valid until"
  },
  "security/SecurityPanel.js | viewCertificate": {
    "message": "View certificate"
  },
  "security/SecurityPanel.js | viewDRequestInNetworkPanel": {
    "message": "View {PH1} request in Network Panel"
  },
  "security/SecurityPanel.js | viewDRequestsInNetworkPanel": {
    "message": "View {PH1} requests in Network Panel"
  },
  "security/SecurityPanel.js | viewRequestsInNetworkPanel": {
    "message": "View requests in Network Panel"
  },
  "security/SecurityPanel.js | youHaveRecentlyAllowedContent": {
    "message": "You have recently allowed content loaded with certificate errors (such as scripts or iframes) to run on this site."
  },
  "security/SecurityPanel.js | youHaveRecentlyAllowedNonsecure": {
    "message": "You have recently allowed non-secure content (such as scripts or iframes) to run on this site."
  },
  "security/SecurityPanel.js | yourConnectionToThisOriginIsNot": {
    "message": "Your connection to this origin is not secure."
  },
  "security/SecurityPanel.js | yourPageRequestedNonsecure": {
    "message": "Your page requested non-secure resources that were blocked."
  },
  "settings/FrameworkBlackboxSettingsTab.js | addFilenamePattern": {
    "message": "Add filename pattern"
  },
  "settings/FrameworkBlackboxSettingsTab.js | addPattern": {
    "message": "Add pattern..."
  },
  "settings/FrameworkBlackboxSettingsTab.js | behavior": {
    "message": "Behavior"
  },
  "settings/FrameworkBlackboxSettingsTab.js | blackbox": {
    "message": "Blackbox"
  },
  "settings/FrameworkBlackboxSettingsTab.js | blackboxContentScripts": {
    "message": "Blackbox content scripts"
  },
  "settings/FrameworkBlackboxSettingsTab.js | blackboxContentScriptsExtension": {
    "message": "Blackbox content scripts (extension scripts in the page)"
  },
  "settings/FrameworkBlackboxSettingsTab.js | blackboxScriptsWhoseNamesMatchS": {
    "message": "Blackbox scripts whose names match '{PH1}'"
  },
  "settings/FrameworkBlackboxSettingsTab.js | debuggerWillSkipThroughThe": {
    "message": "Debugger will skip through the scripts and will not stop on exceptions thrown by them."
  },
  "settings/FrameworkBlackboxSettingsTab.js | disabled": {
    "message": "Disabled"
  },
  "settings/FrameworkBlackboxSettingsTab.js | frameworkBlackboxing": {
    "message": "Framework Blackboxing"
  },
  "settings/FrameworkBlackboxSettingsTab.js | noBlackboxedPatterns": {
    "message": "No blackboxed patterns"
  },
  "settings/FrameworkBlackboxSettingsTab.js | pattern": {
    "message": "Pattern"
  },
  "settings/FrameworkBlackboxSettingsTab.js | patternAlreadyExists": {
    "message": "Pattern already exists"
  },
  "settings/FrameworkBlackboxSettingsTab.js | patternCannotBeEmpty": {
    "message": "Pattern cannot be empty"
  },
  "settings/FrameworkBlackboxSettingsTab.js | patternMustBeAValidRegular": {
    "message": "Pattern must be a valid regular expression"
  },
  "settings/KeybindsSettingsTab.js | addAShortcut": {
    "message": "Add a shortcut"
  },
  "settings/KeybindsSettingsTab.js | confirmChanges": {
    "message": "Confirm changes"
  },
  "settings/KeybindsSettingsTab.js | discardChanges": {
    "message": "Discard changes"
  },
  "settings/KeybindsSettingsTab.js | editShortcut": {
    "message": "Edit shortcut"
  },
  "settings/KeybindsSettingsTab.js | FullListOfDevtoolsKeyboard": {
    "message": "Full list of DevTools keyboard shortcuts and gestures"
  },
  "settings/KeybindsSettingsTab.js | keyboardShortcutsList": {
    "message": "Keyboard shortcuts list"
  },
  "settings/KeybindsSettingsTab.js | matchShortcutsFromPreset": {
    "message": "Match shortcuts from preset"
  },
  "settings/KeybindsSettingsTab.js | noShortcutForAction": {
    "message": "No shortcut for action"
  },
  "settings/KeybindsSettingsTab.js | removeShortcut": {
    "message": "Remove shortcut"
  },
  "settings/KeybindsSettingsTab.js | ResetShortcutsForAction": {
    "message": "Reset shortcuts for action"
  },
  "settings/KeybindsSettingsTab.js | RestoreDefaultShortcuts": {
    "message": "Restore default shortcuts"
  },
  "settings/KeybindsSettingsTab.js | shortcutModified": {
    "message": "Shortcut modified"
  },
  "settings/KeybindsSettingsTab.js | shortcuts": {
    "message": "Shortcuts"
  },
  "settings/KeybindsSettingsTab.js | shortcutsCannotContainOnly": {
    "message": "Shortcuts cannot contain only modifier keys."
  },
  "settings/KeybindsSettingsTab.js | thisShortcutIsInUseByS": {
    "message": "This shortcut is in use by {PH1}: {PH2}."
  },
  "settings/ModuleUIStrings.js | blackboxing": {
    "message": "Blackboxing"
  },
  "settings/ModuleUIStrings.js | documentation": {
    "message": "Documentation"
  },
  "settings/ModuleUIStrings.js | experiments": {
    "message": "Experiments"
  },
  "settings/ModuleUIStrings.js | preferences": {
    "message": "Preferences"
  },
  "settings/ModuleUIStrings.js | settings": {
    "message": "Settings"
  },
  "settings/ModuleUIStrings.js | shortcuts": {
    "message": "Shortcuts"
  },
  "settings/SettingsScreen.js | experiments": {
    "message": "Experiments"
  },
  "settings/SettingsScreen.js | oneOrMoreSettingsHaveChanged": {
    "message": "One or more settings have changed which requires a reload to take effect."
  },
  "settings/SettingsScreen.js | preferences": {
    "message": "Preferences"
  },
  "settings/SettingsScreen.js | restoreDefaultsAndReload": {
    "message": "Restore defaults and reload"
  },
  "settings/SettingsScreen.js | settings": {
    "message": "Settings"
  },
  "settings/SettingsScreen.js | shortcuts": {
    "message": "Shortcuts"
  },
  "settings/SettingsScreen.js | theseExperimentsAreParticularly": {
    "message": "These experiments are particularly unstable. Enable at your own risk."
  },
  "settings/SettingsScreen.js | theseExperimentsCouldBeUnstable": {
    "message": "These experiments could be unstable or unreliable and may require you to restart DevTools."
  },
  "settings/SettingsScreen.js | warning": {
    "message": "WARNING:"
  },
  "snippets/ModuleUIStrings.js | runSnippet": {
    "message": "Run snippet"
  },
  "snippets/ScriptSnippetFileSystem.js | linkedTo": {
    "message": "Linked to {PH1}"
  },
  "snippets/ScriptSnippetFileSystem.js | scriptSnippet": {
    "message": "Script snippet #{PH1}"
  },
  "snippets/SnippetsQuickOpen.js | noSnippetsFound": {
    "message": "No snippets found."
  },
  "text_editor/CodeMirrorTextEditor.js | codeEditor": {
    "message": "Code editor"
  },
  "web_audio/AudioContextContentBuilder.js | audiocontext": {
    "message": "AudioContext"
  },
  "web_audio/AudioContextContentBuilder.js | callbackBufferSize": {
    "message": "Callback Buffer Size"
  },
  "web_audio/AudioContextContentBuilder.js | callbackInterval": {
    "message": "Callback Interval"
  },
  "web_audio/AudioContextContentBuilder.js | currentTime": {
    "message": "Current Time"
  },
  "web_audio/AudioContextContentBuilder.js | maxOutputChannels": {
    "message": "Max Output Channels"
  },
  "web_audio/AudioContextContentBuilder.js | offlineaudiocontext": {
    "message": "OfflineAudioContext"
  },
  "web_audio/AudioContextContentBuilder.js | renderCapacity": {
    "message": "Render Capacity"
  },
  "web_audio/AudioContextContentBuilder.js | sampleRate": {
    "message": "Sample Rate"
  },
  "web_audio/AudioContextContentBuilder.js | state": {
    "message": "State"
  },
  "web_audio/AudioContextSelector.js | audioContextS": {
    "message": "Audio context: {PH1}"
  },
  "web_audio/AudioContextSelector.js | noRecordings": {
    "message": "(no recordings)"
  },
  "web_audio/ModuleUIStrings.js | audio": {
    "message": "audio"
  },
  "web_audio/ModuleUIStrings.js | webaudio": {
    "message": "WebAudio"
  },
  "web_audio/WebAudioView.js | openAPageThatUsesWebAudioApiTo": {
    "message": "Open a page that uses Web Audio API to start monitoring."
  },
  "webauthn/ModuleUIStrings.js | webauthn": {
    "message": "WebAuthn"
  },
  "webauthn/WebauthnPane.js | actions": {
    "message": "Actions"
  },
  "webauthn/WebauthnPane.js | active": {
    "message": "Active"
  },
  "webauthn/WebauthnPane.js | add": {
    "message": "Add"
  },
  "webauthn/WebauthnPane.js | addAuthenticator": {
    "message": "Add authenticator"
  },
  "webauthn/WebauthnPane.js | authenticatorS": {
    "message": "Authenticator {PH1}"
  },
  "webauthn/WebauthnPane.js | credentials": {
    "message": "Credentials"
  },
  "webauthn/WebauthnPane.js | editName": {
    "message": "Edit name"
  },
  "webauthn/WebauthnPane.js | enableVirtualAuthenticator": {
    "message": "Enable virtual authenticator environment"
  },
  "webauthn/WebauthnPane.js | export": {
    "message": "Export"
  },
  "webauthn/WebauthnPane.js | id": {
    "message": "ID"
  },
  "webauthn/WebauthnPane.js | isResident": {
    "message": "Is Resident"
  },
  "webauthn/WebauthnPane.js | learnMore": {
    "message": "Learn more"
  },
  "webauthn/WebauthnPane.js | newAuthenticator": {
    "message": "New authenticator"
  },
  "webauthn/WebauthnPane.js | no": {
    "message": "No"
  },
  "webauthn/WebauthnPane.js | noCredentialsTryCallingSFromYour": {
    "message": "No credentials. Try calling {PH1} from your website."
  },
  "webauthn/WebauthnPane.js | privateKeypem": {
    "message": "Private key.pem"
  },
  "webauthn/WebauthnPane.js | protocol": {
    "message": "Protocol"
  },
  "webauthn/WebauthnPane.js | remove": {
    "message": "Remove"
  },
  "webauthn/WebauthnPane.js | rpId": {
    "message": "RP ID"
  },
  "webauthn/WebauthnPane.js | saveName": {
    "message": "Save name"
  },
  "webauthn/WebauthnPane.js | setSAsTheActiveAuthenticator": {
    "message": "Set {PH1} as the active authenticator"
  },
  "webauthn/WebauthnPane.js | signCount": {
    "message": "Sign Count"
  },
  "webauthn/WebauthnPane.js | supportsResidentKeys": {
    "message": "Supports resident keys"
  },
  "webauthn/WebauthnPane.js | supportsUserVerification": {
    "message": "Supports user verification"
  },
  "webauthn/WebauthnPane.js | transport": {
    "message": "Transport"
  },
  "webauthn/WebauthnPane.js | userHandle": {
    "message": "User Handle"
  },
  "webauthn/WebauthnPane.js | useWebauthnForPhishingresistant": {
    "message": "Use WebAuthn for phishing-resistant authentication"
  },
  "webauthn/WebauthnPane.js | uuid": {
    "message": "UUID"
  },
  "webauthn/WebauthnPane.js | yes": {
    "message": "Yes"
  }
}
