Forms

  • LabReport
    • ea_form_fieldset_01KEVX1ZA8Y80T27B447ASHZBT
    • name
    • sampleName
    • sampleMatrix
    • productType
    • labName
    • externalUrl
    • internalUrl
    • category
    • type
    • project
    • state
    • debugData
    • markdownContent
    • ea_form_fieldset_close_01KEVX1ZA8Y80T27B447ASHZBV
    • _token

LabReport

Form type:
"EasyCorp\Bundle\EasyAdminBundle\Form\Type\CrudFormType"

Errors

This form has no errors.

Default Data

Property Value
Model Format same as normalized format
Normalized Format
App\Entity\LabReport {#854
  -id: 661
  -name: "Lab Report Page 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1747758760 {#848
    date: 2025-05-20 16:32:40.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744386 {#845
    date: 2025-05-20 12:33:06.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2024-10-21"
  -thcaPercentage: "4.7"
  -totalThcPercentage: "23.4219"
  -deltaNinePercentage: "19.3"
  -deltaNineWithThcaCombined: "24"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
  -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          \n
          # Certificate of Analysis for\n
          Balanced Health Botanicals  \n
          1500 W Hampden Ave, Unit 5G  \n
          Sheridan, CO 80110  \n
          \n
          **Received:** 10/15/2024 @ 21.6 °C  \n
          **Sample ID:** 2410642-001  \n
          **Analyzed:** 10/17/24  \n
          **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
          **Yeast and Mold:** < 10 CFU/g  \n
          \n
          ## 4242551 FSO 30mg CBD Soft Gels\n
          \n
          ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
          \n
          | Compound               | Result             | Compound                    | Result             |\n
          | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
          | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
          | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
          | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
          | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
          | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
          | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
          | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
          | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
          | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
          | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
          | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
          | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
          | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
          | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
          | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
          | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
          | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
          | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
          | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
          | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
          | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
          | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
          | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
          | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
          | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
          | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
          | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
          | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
          \n
          \n
          **Reported By:**  \n
          Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
          \n
          *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
          *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis for"
            "md" => "# Certificate of Analysis for"
          ]
          [
            "type" => "text"
            "value" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
            "md" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "4242551 FSO 30mg CBD Soft Gels"
            "md" => "## 4242551 FSO 30mg CBD Soft Gels"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Compound"
                "Result"
                "Compound"
                "Result"
              ]
              [
                "(±)-2-Butanol"
                "< 10 mg/kg (ppm)"
                "1,1-Dichloroethene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,2-Dichloroethane"
                "< 2.0 mg/kg (ppm)"
                "1,2-Dimethoxyethane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,4-Dioxane"
                "< 2.5 mg/kg (ppm)"
                "1-Butanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1-Butanol"
                "< 500 mg/kg (ppm)"
                "1-Propanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1,2-Dimethylhydrazine"
                "< 2.0 mg/kg (ppm)"
                "2,3-Dimethylbutane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "2-Ethoxyethanol"
                "< 50 mg/kg (ppm)"
                "2-Methoxyethanol"
                "< 50 mg/kg (ppm)"
              ]
              [
                "2-Methyl-1-propanol"
                "< 50 mg/kg (ppm)"
                "2-Methylbutane (Isopentane)"
                "< 500 mg/kg (ppm)"
              ]
              [
                "2-Methylpentane"
                "< 250 mg/kg (ppm)"
                "3-Methylpentane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "3-Methyl-1-Butanol"
                "< 50 mg/kg (ppm)"
                "Acetonitrile"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Acetone"
                "< 50 mg/kg (ppm)"
                "Benzene"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Anisole"
                "< 50.0 mg/kg (ppm)"
                "Chloroform"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Butyl Acetate"
                "< 500 mg/kg (ppm)"
                "Cyclohexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Cumene"
                "< 50 mg/kg (ppm)"
                "Ethanol"
                "< 5000 mg/kg (ppm)"
              ]
              [
                "Diethyl ether"
                "< 500 mg/kg (ppm)"
                "Ethyl benzene"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Acetate"
                "< 500 mg/kg (ppm)"
                "Ethylene Glycol"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Ether"
                "< 500 mg/kg (ppm)"
                "Formamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Ethylene Oxide"
                "< 1.0 mg/kg (ppm)"
                "Hexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Heptane"
                "< 500 mg/kg (ppm)"
                "Isobutyl acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Isopropyl acetate"
                "< 500 mg/kg (ppm)"
                "Methanol"
                "< 3000 mg/kg (ppm)"
              ]
              [
                "Methyl Acetate"
                "< 500 mg/kg (ppm)"
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylene Chloride"
                "< 1.0 mg/kg (ppm)"
                "Methylisobutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
                "N,N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "N,N-Dimethylformamide"
                "< 100 mg/kg (ppm)"
                "N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Nitromethane"
                "< 250 mg/kg (ppm)"
                "Nitroethane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "N-Methylpyrrolidone"
                "< 100 mg/kg (ppm)"
                "Pentane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Propane"
                "< 500 mg/kg (ppm)"
                "Propyl Acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Pyridine"
                "< 100 mg/kg (ppm)"
                "Sulfolane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
                "Toluene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Xylenes (p-, m-, o-)"
                "< 500 mg/kg (ppm)"
              ]
            ]
            "md" => """
              | Compound               | Result             | Compound                    | Result             |\n
              | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
              | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
              | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
              | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
              | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
              | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
              | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
              | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
              | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
              | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
              | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
              | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
              | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
              | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
              | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
              | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
              | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
              | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
              | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
              | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
              | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
              | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
              | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
              | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
              | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
              | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
              | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
              | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
              | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Compound","Result","Compound","Result"\n
              "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
              "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
              "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
              "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
              "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
              "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
              "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
              "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
              "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
              "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
              "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
              "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
              "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
              "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
              "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
              "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
              "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
              "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
              "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
              "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
              "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
              "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
              "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
              "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
              """
          ]
          [
            "type" => "text"
            "value" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
            "md" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Balanced Health Botanicals"
  -sampleName: "FSO 30mg CBD Soft Gels"
  -sampleMatrix: "soft gel capsule"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
View Format same as normalized format

Submitted Data

This form was not submitted.

Passed Options

Option Passed Value Resolved Value
attr
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
data
App\Entity\LabReport {#854
  -id: 661
  -name: "Lab Report Page 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1747758760 {#848
    date: 2025-05-20 16:32:40.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744386 {#845
    date: 2025-05-20 12:33:06.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2024-10-21"
  -thcaPercentage: "4.7"
  -totalThcPercentage: "23.4219"
  -deltaNinePercentage: "19.3"
  -deltaNineWithThcaCombined: "24"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
  -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          \n
          # Certificate of Analysis for\n
          Balanced Health Botanicals  \n
          1500 W Hampden Ave, Unit 5G  \n
          Sheridan, CO 80110  \n
          \n
          **Received:** 10/15/2024 @ 21.6 °C  \n
          **Sample ID:** 2410642-001  \n
          **Analyzed:** 10/17/24  \n
          **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
          **Yeast and Mold:** < 10 CFU/g  \n
          \n
          ## 4242551 FSO 30mg CBD Soft Gels\n
          \n
          ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
          \n
          | Compound               | Result             | Compound                    | Result             |\n
          | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
          | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
          | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
          | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
          | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
          | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
          | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
          | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
          | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
          | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
          | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
          | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
          | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
          | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
          | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
          | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
          | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
          | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
          | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
          | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
          | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
          | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
          | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
          | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
          | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
          | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
          | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
          | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
          | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
          \n
          \n
          **Reported By:**  \n
          Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
          \n
          *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
          *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis for"
            "md" => "# Certificate of Analysis for"
          ]
          [
            "type" => "text"
            "value" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
            "md" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "4242551 FSO 30mg CBD Soft Gels"
            "md" => "## 4242551 FSO 30mg CBD Soft Gels"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Compound"
                "Result"
                "Compound"
                "Result"
              ]
              [
                "(±)-2-Butanol"
                "< 10 mg/kg (ppm)"
                "1,1-Dichloroethene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,2-Dichloroethane"
                "< 2.0 mg/kg (ppm)"
                "1,2-Dimethoxyethane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,4-Dioxane"
                "< 2.5 mg/kg (ppm)"
                "1-Butanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1-Butanol"
                "< 500 mg/kg (ppm)"
                "1-Propanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1,2-Dimethylhydrazine"
                "< 2.0 mg/kg (ppm)"
                "2,3-Dimethylbutane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "2-Ethoxyethanol"
                "< 50 mg/kg (ppm)"
                "2-Methoxyethanol"
                "< 50 mg/kg (ppm)"
              ]
              [
                "2-Methyl-1-propanol"
                "< 50 mg/kg (ppm)"
                "2-Methylbutane (Isopentane)"
                "< 500 mg/kg (ppm)"
              ]
              [
                "2-Methylpentane"
                "< 250 mg/kg (ppm)"
                "3-Methylpentane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "3-Methyl-1-Butanol"
                "< 50 mg/kg (ppm)"
                "Acetonitrile"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Acetone"
                "< 50 mg/kg (ppm)"
                "Benzene"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Anisole"
                "< 50.0 mg/kg (ppm)"
                "Chloroform"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Butyl Acetate"
                "< 500 mg/kg (ppm)"
                "Cyclohexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Cumene"
                "< 50 mg/kg (ppm)"
                "Ethanol"
                "< 5000 mg/kg (ppm)"
              ]
              [
                "Diethyl ether"
                "< 500 mg/kg (ppm)"
                "Ethyl benzene"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Acetate"
                "< 500 mg/kg (ppm)"
                "Ethylene Glycol"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Ether"
                "< 500 mg/kg (ppm)"
                "Formamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Ethylene Oxide"
                "< 1.0 mg/kg (ppm)"
                "Hexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Heptane"
                "< 500 mg/kg (ppm)"
                "Isobutyl acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Isopropyl acetate"
                "< 500 mg/kg (ppm)"
                "Methanol"
                "< 3000 mg/kg (ppm)"
              ]
              [
                "Methyl Acetate"
                "< 500 mg/kg (ppm)"
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylene Chloride"
                "< 1.0 mg/kg (ppm)"
                "Methylisobutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
                "N,N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "N,N-Dimethylformamide"
                "< 100 mg/kg (ppm)"
                "N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Nitromethane"
                "< 250 mg/kg (ppm)"
                "Nitroethane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "N-Methylpyrrolidone"
                "< 100 mg/kg (ppm)"
                "Pentane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Propane"
                "< 500 mg/kg (ppm)"
                "Propyl Acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Pyridine"
                "< 100 mg/kg (ppm)"
                "Sulfolane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
                "Toluene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Xylenes (p-, m-, o-)"
                "< 500 mg/kg (ppm)"
              ]
            ]
            "md" => """
              | Compound               | Result             | Compound                    | Result             |\n
              | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
              | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
              | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
              | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
              | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
              | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
              | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
              | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
              | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
              | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
              | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
              | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
              | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
              | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
              | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
              | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
              | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
              | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
              | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
              | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
              | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
              | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
              | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
              | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
              | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
              | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
              | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
              | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
              | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Compound","Result","Compound","Result"\n
              "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
              "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
              "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
              "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
              "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
              "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
              "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
              "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
              "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
              "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
              "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
              "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
              "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
              "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
              "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
              "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
              "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
              "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
              "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
              "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
              "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
              "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
              "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
              "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
              """
          ]
          [
            "type" => "text"
            "value" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
            "md" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Balanced Health Botanicals"
  -sampleName: "FSO 30mg CBD Soft Gels"
  -sampleMatrix: "soft gel capsule"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
same as passed value
entityDto
EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844
  -isAccessible: true
  -fqcn: "App\Entity\LabReport"
  -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …}
  -instance: App\Entity\LabReport {#854
    -id: 661
    -name: "Lab Report Page 3"
    -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
    -source: null
    -type: "jpg"
    -project: Proxies\__CG__\App\Entity\Project {#903
      -id: 104
      -name: "pure cbd"
      -url: "https://purecbdnc.com/"
      -prompt: null
      -chatJson: null
      -externalLabReportsUrl: null
      -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
      -productMatchingUrl: null
      -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
      -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
      -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
      -createdAt: DateTime @1744068184 {#1495
        date: 2025-04-07 23:23:04.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1768286193 {#1485
        date: 2026-01-13 06:36:33.0 UTC (+00:00)
      }
      -spiderSourceMatchingUrls: null
      -state: "ready_to_hunt"
      -products: Doctrine\ORM\PersistentCollection {#1560 …}
      -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
      -websiteFramework: "shopify"
      -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
      -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
      -productExcludePaths: null
      -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
      -user: null
      -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
      -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
    }
    -labReportSource: null
    -createdAt: DateTime @1747758760 {#848
      date: 2025-05-20 16:32:40.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1747744386 {#845
      date: 2025-05-20 12:33:06.0 UTC (+00:00)
    }
    -category: null
    -state: "processed"
    -expiryDate: ""
    -extractionDate: "2024-10-21"
    -thcaPercentage: "4.7"
    -totalThcPercentage: "23.4219"
    -deltaNinePercentage: "19.3"
    -deltaNineWithThcaCombined: "24"
    -comments: null
    -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
    -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
    -debugData: null
    -jsonContent: [
      "pages" => [
        [
          "page" => 1
          "md" => """
            \n
            # Certificate of Analysis for\n
            Balanced Health Botanicals  \n
            1500 W Hampden Ave, Unit 5G  \n
            Sheridan, CO 80110  \n
            \n
            **Received:** 10/15/2024 @ 21.6 °C  \n
            **Sample ID:** 2410642-001  \n
            **Analyzed:** 10/17/24  \n
            **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
            **Yeast and Mold:** < 10 CFU/g  \n
            \n
            ## 4242551 FSO 30mg CBD Soft Gels\n
            \n
            ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
            \n
            | Compound               | Result             | Compound                    | Result             |\n
            | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
            | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
            | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
            | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
            | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
            | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
            | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
            | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
            | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
            | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
            | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
            | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
            | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
            | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
            | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
            | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
            | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
            | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
            | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
            | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
            | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
            | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
            | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
            | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
            | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
            | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
            | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
            | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
            | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
            | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
            | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
            \n
            \n
            **Reported By:**  \n
            Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
            \n
            *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
            *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
            """
          "images" => [
            [
              "name" => "page_1.jpg"
              "height" => 0
              "width" => 0
              "x" => 0
              "y" => 0
              "type" => "full_page_screenshot"
            ]
          ]
          "charts" => []
          "items" => [
            [
              "type" => "heading"
              "lvl" => 1
              "value" => "Certificate of Analysis for"
              "md" => "# Certificate of Analysis for"
            ]
            [
              "type" => "text"
              "value" => """
                Balanced Health Botanicals  \n
                1500 W Hampden Ave, Unit 5G  \n
                Sheridan, CO 80110  \n
                \n
                **Received:** 10/15/2024 @ 21.6 °C  \n
                **Sample ID:** 2410642-001  \n
                **Analyzed:** 10/17/24  \n
                **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
                **Yeast and Mold:** < 10 CFU/g
                """
              "md" => """
                Balanced Health Botanicals  \n
                1500 W Hampden Ave, Unit 5G  \n
                Sheridan, CO 80110  \n
                \n
                **Received:** 10/15/2024 @ 21.6 °C  \n
                **Sample ID:** 2410642-001  \n
                **Analyzed:** 10/17/24  \n
                **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
                **Yeast and Mold:** < 10 CFU/g
                """
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "4242551 FSO 30mg CBD Soft Gels"
              "md" => "## 4242551 FSO 30mg CBD Soft Gels"
            ]
            [
              "type" => "heading"
              "lvl" => 3
              "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
              "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Compound"
                  "Result"
                  "Compound"
                  "Result"
                ]
                [
                  "(±)-2-Butanol"
                  "< 10 mg/kg (ppm)"
                  "1,1-Dichloroethene"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "1,2-Dichloroethane"
                  "< 2.0 mg/kg (ppm)"
                  "1,2-Dimethoxyethane"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "1,4-Dioxane"
                  "< 2.5 mg/kg (ppm)"
                  "1-Butanol"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "1-Butanol"
                  "< 500 mg/kg (ppm)"
                  "1-Propanol"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "1,2-Dimethylhydrazine"
                  "< 2.0 mg/kg (ppm)"
                  "2,3-Dimethylbutane"
                  "< 250 mg/kg (ppm)"
                ]
                [
                  "2-Ethoxyethanol"
                  "< 50 mg/kg (ppm)"
                  "2-Methoxyethanol"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "2-Methyl-1-propanol"
                  "< 50 mg/kg (ppm)"
                  "2-Methylbutane (Isopentane)"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "2-Methylpentane"
                  "< 250 mg/kg (ppm)"
                  "3-Methylpentane"
                  "< 250 mg/kg (ppm)"
                ]
                [
                  "3-Methyl-1-Butanol"
                  "< 50 mg/kg (ppm)"
                  "Acetonitrile"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Acetone"
                  "< 50 mg/kg (ppm)"
                  "Benzene"
                  "< 1.0 mg/kg (ppm)"
                ]
                [
                  "Anisole"
                  "< 50.0 mg/kg (ppm)"
                  "Chloroform"
                  "< 1.0 mg/kg (ppm)"
                ]
                [
                  "Butyl Acetate"
                  "< 500 mg/kg (ppm)"
                  "Cyclohexane"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Cumene"
                  "< 50 mg/kg (ppm)"
                  "Ethanol"
                  "< 5000 mg/kg (ppm)"
                ]
                [
                  "Diethyl ether"
                  "< 500 mg/kg (ppm)"
                  "Ethyl benzene"
                  "< 100 mg/kg (ppm)"
                ]
                [
                  "Ethyl Acetate"
                  "< 500 mg/kg (ppm)"
                  "Ethylene Glycol"
                  "< 100 mg/kg (ppm)"
                ]
                [
                  "Ethyl Ether"
                  "< 500 mg/kg (ppm)"
                  "Formamide"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Ethylene Oxide"
                  "< 1.0 mg/kg (ppm)"
                  "Hexane"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Heptane"
                  "< 500 mg/kg (ppm)"
                  "Isobutyl acetate"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Isopropyl acetate"
                  "< 500 mg/kg (ppm)"
                  "Methanol"
                  "< 3000 mg/kg (ppm)"
                ]
                [
                  "Methyl Acetate"
                  "< 500 mg/kg (ppm)"
                  "Methylbutyl Ketone"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Methylene Chloride"
                  "< 1.0 mg/kg (ppm)"
                  "Methylisobutyl Ketone"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Methylbutyl Ketone"
                  "< 50 mg/kg (ppm)"
                  "N,N-Dimethylacetamide"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "N,N-Dimethylformamide"
                  "< 100 mg/kg (ppm)"
                  "N-Dimethylacetamide"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Nitromethane"
                  "< 250 mg/kg (ppm)"
                  "Nitroethane"
                  "< 250 mg/kg (ppm)"
                ]
                [
                  "N-Methylpyrrolidone"
                  "< 100 mg/kg (ppm)"
                  "Pentane"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Propane"
                  "< 500 mg/kg (ppm)"
                  "Propyl Acetate"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Pyridine"
                  "< 100 mg/kg (ppm)"
                  "Sulfolane"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Tert-Butylmethyl Ether"
                  "< 500 mg/kg (ppm)"
                  "Tetrahydrofuran"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Tetrahydrofuran"
                  "< 50 mg/kg (ppm)"
                  "Toluene"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Tert-Butylmethyl Ether"
                  "< 500 mg/kg (ppm)"
                  "Xylenes (p-, m-, o-)"
                  "< 500 mg/kg (ppm)"
                ]
              ]
              "md" => """
                | Compound               | Result             | Compound                    | Result             |\n
                | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
                | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
                | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
                | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
                | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
                | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
                | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
                | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
                | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
                | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
                | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
                | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
                | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
                | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
                | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
                | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
                | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
                | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
                | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
                | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
                | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
                | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
                | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
                | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
                | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
                | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
                | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
                | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
                | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
                | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
                | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
                """
              "isPerfectTable" => true
              "csv" => """
                "Compound","Result","Compound","Result"\n
                "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
                "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
                "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
                "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
                "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
                "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
                "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
                "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
                "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
                "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
                "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
                "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
                "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
                "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
                "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
                "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
                "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
                "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
                "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
                "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
                "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
                "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
                "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
                "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
                "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
                "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
                "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
                "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
                "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
                "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
                """
            ]
            [
              "type" => "text"
              "value" => """
                **Reported By:**  \n
                Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
                \n
                *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
                *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
                """
              "md" => """
                **Reported By:**  \n
                Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
                \n
                *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
                *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
                """
            ]
          ]
          "status" => "OK"
          "originalOrientationAngle" => 0
          "links" => []
          "triggeredAutoMode" => false
          "parsingMode" => "multimodal-openai-gpt4o"
          "structuredData" => null
          "noStructuredContent" => false
          "noTextContent" => false
        ]
      ]
      "job_metadata" => [
        "credits_used" => 0
        "job_credits_usage" => 0
        "job_pages" => 0
        "job_auto_mode_triggered_pages" => 0
        "job_is_cache_hit" => true
      ]
    ]
    -labName: "Balanced Health Botanicals"
    -sampleName: "FSO 30mg CBD Soft Gels"
    -sampleMatrix: "soft gel capsule"
    -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
    -productType: "cannabis"
    -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
    -products: Doctrine\ORM\PersistentCollection {#1018 …}
  }
  -primaryKeyName: "id"
  -primaryKeyValue: 661
  -permission: null
  -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …}
  -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …}
}
same as passed value
translation_domain
"messages"
same as passed value

Resolved Options

Option Value
action
""
allow_extra_fields
true
allow_file_upload
false
attr
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
attr_translation_parameters
[]
auto_initialize
true
block_name
null
block_prefix
null
by_reference
true
compound
true
constraints
[]
csrf_field_name
"_token"
csrf_message
"The CSRF token is invalid. Please try to resubmit the form."
csrf_protection
true
csrf_token_id
null
csrf_token_manager
Symfony\Component\Security\Csrf\CsrfTokenManager {#395
  -generator: Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator {#396 …}
  -storage: Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage {#397 …}
  -namespace: Closure() {#399 …}
}
data
App\Entity\LabReport {#854
  -id: 661
  -name: "Lab Report Page 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1747758760 {#848
    date: 2025-05-20 16:32:40.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744386 {#845
    date: 2025-05-20 12:33:06.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2024-10-21"
  -thcaPercentage: "4.7"
  -totalThcPercentage: "23.4219"
  -deltaNinePercentage: "19.3"
  -deltaNineWithThcaCombined: "24"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
  -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          \n
          # Certificate of Analysis for\n
          Balanced Health Botanicals  \n
          1500 W Hampden Ave, Unit 5G  \n
          Sheridan, CO 80110  \n
          \n
          **Received:** 10/15/2024 @ 21.6 °C  \n
          **Sample ID:** 2410642-001  \n
          **Analyzed:** 10/17/24  \n
          **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
          **Yeast and Mold:** < 10 CFU/g  \n
          \n
          ## 4242551 FSO 30mg CBD Soft Gels\n
          \n
          ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
          \n
          | Compound               | Result             | Compound                    | Result             |\n
          | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
          | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
          | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
          | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
          | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
          | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
          | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
          | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
          | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
          | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
          | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
          | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
          | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
          | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
          | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
          | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
          | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
          | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
          | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
          | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
          | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
          | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
          | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
          | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
          | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
          | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
          | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
          | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
          | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
          \n
          \n
          **Reported By:**  \n
          Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
          \n
          *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
          *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis for"
            "md" => "# Certificate of Analysis for"
          ]
          [
            "type" => "text"
            "value" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
            "md" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "4242551 FSO 30mg CBD Soft Gels"
            "md" => "## 4242551 FSO 30mg CBD Soft Gels"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Compound"
                "Result"
                "Compound"
                "Result"
              ]
              [
                "(±)-2-Butanol"
                "< 10 mg/kg (ppm)"
                "1,1-Dichloroethene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,2-Dichloroethane"
                "< 2.0 mg/kg (ppm)"
                "1,2-Dimethoxyethane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,4-Dioxane"
                "< 2.5 mg/kg (ppm)"
                "1-Butanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1-Butanol"
                "< 500 mg/kg (ppm)"
                "1-Propanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1,2-Dimethylhydrazine"
                "< 2.0 mg/kg (ppm)"
                "2,3-Dimethylbutane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "2-Ethoxyethanol"
                "< 50 mg/kg (ppm)"
                "2-Methoxyethanol"
                "< 50 mg/kg (ppm)"
              ]
              [
                "2-Methyl-1-propanol"
                "< 50 mg/kg (ppm)"
                "2-Methylbutane (Isopentane)"
                "< 500 mg/kg (ppm)"
              ]
              [
                "2-Methylpentane"
                "< 250 mg/kg (ppm)"
                "3-Methylpentane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "3-Methyl-1-Butanol"
                "< 50 mg/kg (ppm)"
                "Acetonitrile"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Acetone"
                "< 50 mg/kg (ppm)"
                "Benzene"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Anisole"
                "< 50.0 mg/kg (ppm)"
                "Chloroform"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Butyl Acetate"
                "< 500 mg/kg (ppm)"
                "Cyclohexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Cumene"
                "< 50 mg/kg (ppm)"
                "Ethanol"
                "< 5000 mg/kg (ppm)"
              ]
              [
                "Diethyl ether"
                "< 500 mg/kg (ppm)"
                "Ethyl benzene"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Acetate"
                "< 500 mg/kg (ppm)"
                "Ethylene Glycol"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Ether"
                "< 500 mg/kg (ppm)"
                "Formamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Ethylene Oxide"
                "< 1.0 mg/kg (ppm)"
                "Hexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Heptane"
                "< 500 mg/kg (ppm)"
                "Isobutyl acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Isopropyl acetate"
                "< 500 mg/kg (ppm)"
                "Methanol"
                "< 3000 mg/kg (ppm)"
              ]
              [
                "Methyl Acetate"
                "< 500 mg/kg (ppm)"
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylene Chloride"
                "< 1.0 mg/kg (ppm)"
                "Methylisobutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
                "N,N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "N,N-Dimethylformamide"
                "< 100 mg/kg (ppm)"
                "N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Nitromethane"
                "< 250 mg/kg (ppm)"
                "Nitroethane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "N-Methylpyrrolidone"
                "< 100 mg/kg (ppm)"
                "Pentane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Propane"
                "< 500 mg/kg (ppm)"
                "Propyl Acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Pyridine"
                "< 100 mg/kg (ppm)"
                "Sulfolane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
                "Toluene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Xylenes (p-, m-, o-)"
                "< 500 mg/kg (ppm)"
              ]
            ]
            "md" => """
              | Compound               | Result             | Compound                    | Result             |\n
              | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
              | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
              | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
              | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
              | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
              | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
              | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
              | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
              | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
              | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
              | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
              | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
              | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
              | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
              | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
              | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
              | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
              | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
              | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
              | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
              | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
              | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
              | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
              | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
              | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
              | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
              | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
              | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
              | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Compound","Result","Compound","Result"\n
              "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
              "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
              "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
              "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
              "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
              "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
              "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
              "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
              "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
              "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
              "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
              "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
              "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
              "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
              "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
              "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
              "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
              "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
              "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
              "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
              "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
              "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
              "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
              "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
              """
          ]
          [
            "type" => "text"
            "value" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
            "md" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Balanced Health Botanicals"
  -sampleName: "FSO 30mg CBD Soft Gels"
  -sampleMatrix: "soft gel capsule"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
data_class
"App\Entity\LabReport"
disabled
false
empty_data
Closure(FormInterface $form) {#1771
  class: "Symfony\Component\Form\Extension\Core\Type\FormType"
  use: {
    $class: "App\Entity\LabReport"
  }
}
entityDto
EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844
  -isAccessible: true
  -fqcn: "App\Entity\LabReport"
  -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …}
  -instance: App\Entity\LabReport {#854
    -id: 661
    -name: "Lab Report Page 3"
    -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
    -source: null
    -type: "jpg"
    -project: Proxies\__CG__\App\Entity\Project {#903
      -id: 104
      -name: "pure cbd"
      -url: "https://purecbdnc.com/"
      -prompt: null
      -chatJson: null
      -externalLabReportsUrl: null
      -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
      -productMatchingUrl: null
      -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
      -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
      -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
      -createdAt: DateTime @1744068184 {#1495
        date: 2025-04-07 23:23:04.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1768286193 {#1485
        date: 2026-01-13 06:36:33.0 UTC (+00:00)
      }
      -spiderSourceMatchingUrls: null
      -state: "ready_to_hunt"
      -products: Doctrine\ORM\PersistentCollection {#1560 …}
      -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
      -websiteFramework: "shopify"
      -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
      -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
      -productExcludePaths: null
      -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
      -user: null
      -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
      -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
    }
    -labReportSource: null
    -createdAt: DateTime @1747758760 {#848
      date: 2025-05-20 16:32:40.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1747744386 {#845
      date: 2025-05-20 12:33:06.0 UTC (+00:00)
    }
    -category: null
    -state: "processed"
    -expiryDate: ""
    -extractionDate: "2024-10-21"
    -thcaPercentage: "4.7"
    -totalThcPercentage: "23.4219"
    -deltaNinePercentage: "19.3"
    -deltaNineWithThcaCombined: "24"
    -comments: null
    -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
    -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
    -debugData: null
    -jsonContent: [
      "pages" => [
        [
          "page" => 1
          "md" => """
            \n
            # Certificate of Analysis for\n
            Balanced Health Botanicals  \n
            1500 W Hampden Ave, Unit 5G  \n
            Sheridan, CO 80110  \n
            \n
            **Received:** 10/15/2024 @ 21.6 °C  \n
            **Sample ID:** 2410642-001  \n
            **Analyzed:** 10/17/24  \n
            **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
            **Yeast and Mold:** < 10 CFU/g  \n
            \n
            ## 4242551 FSO 30mg CBD Soft Gels\n
            \n
            ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
            \n
            | Compound               | Result             | Compound                    | Result             |\n
            | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
            | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
            | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
            | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
            | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
            | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
            | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
            | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
            | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
            | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
            | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
            | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
            | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
            | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
            | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
            | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
            | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
            | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
            | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
            | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
            | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
            | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
            | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
            | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
            | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
            | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
            | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
            | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
            | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
            | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
            | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
            \n
            \n
            **Reported By:**  \n
            Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
            \n
            *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
            *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
            """
          "images" => [
            [
              "name" => "page_1.jpg"
              "height" => 0
              "width" => 0
              "x" => 0
              "y" => 0
              "type" => "full_page_screenshot"
            ]
          ]
          "charts" => []
          "items" => [
            [
              "type" => "heading"
              "lvl" => 1
              "value" => "Certificate of Analysis for"
              "md" => "# Certificate of Analysis for"
            ]
            [
              "type" => "text"
              "value" => """
                Balanced Health Botanicals  \n
                1500 W Hampden Ave, Unit 5G  \n
                Sheridan, CO 80110  \n
                \n
                **Received:** 10/15/2024 @ 21.6 °C  \n
                **Sample ID:** 2410642-001  \n
                **Analyzed:** 10/17/24  \n
                **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
                **Yeast and Mold:** < 10 CFU/g
                """
              "md" => """
                Balanced Health Botanicals  \n
                1500 W Hampden Ave, Unit 5G  \n
                Sheridan, CO 80110  \n
                \n
                **Received:** 10/15/2024 @ 21.6 °C  \n
                **Sample ID:** 2410642-001  \n
                **Analyzed:** 10/17/24  \n
                **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
                **Yeast and Mold:** < 10 CFU/g
                """
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "4242551 FSO 30mg CBD Soft Gels"
              "md" => "## 4242551 FSO 30mg CBD Soft Gels"
            ]
            [
              "type" => "heading"
              "lvl" => 3
              "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
              "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Compound"
                  "Result"
                  "Compound"
                  "Result"
                ]
                [
                  "(±)-2-Butanol"
                  "< 10 mg/kg (ppm)"
                  "1,1-Dichloroethene"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "1,2-Dichloroethane"
                  "< 2.0 mg/kg (ppm)"
                  "1,2-Dimethoxyethane"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "1,4-Dioxane"
                  "< 2.5 mg/kg (ppm)"
                  "1-Butanol"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "1-Butanol"
                  "< 500 mg/kg (ppm)"
                  "1-Propanol"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "1,2-Dimethylhydrazine"
                  "< 2.0 mg/kg (ppm)"
                  "2,3-Dimethylbutane"
                  "< 250 mg/kg (ppm)"
                ]
                [
                  "2-Ethoxyethanol"
                  "< 50 mg/kg (ppm)"
                  "2-Methoxyethanol"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "2-Methyl-1-propanol"
                  "< 50 mg/kg (ppm)"
                  "2-Methylbutane (Isopentane)"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "2-Methylpentane"
                  "< 250 mg/kg (ppm)"
                  "3-Methylpentane"
                  "< 250 mg/kg (ppm)"
                ]
                [
                  "3-Methyl-1-Butanol"
                  "< 50 mg/kg (ppm)"
                  "Acetonitrile"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Acetone"
                  "< 50 mg/kg (ppm)"
                  "Benzene"
                  "< 1.0 mg/kg (ppm)"
                ]
                [
                  "Anisole"
                  "< 50.0 mg/kg (ppm)"
                  "Chloroform"
                  "< 1.0 mg/kg (ppm)"
                ]
                [
                  "Butyl Acetate"
                  "< 500 mg/kg (ppm)"
                  "Cyclohexane"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Cumene"
                  "< 50 mg/kg (ppm)"
                  "Ethanol"
                  "< 5000 mg/kg (ppm)"
                ]
                [
                  "Diethyl ether"
                  "< 500 mg/kg (ppm)"
                  "Ethyl benzene"
                  "< 100 mg/kg (ppm)"
                ]
                [
                  "Ethyl Acetate"
                  "< 500 mg/kg (ppm)"
                  "Ethylene Glycol"
                  "< 100 mg/kg (ppm)"
                ]
                [
                  "Ethyl Ether"
                  "< 500 mg/kg (ppm)"
                  "Formamide"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Ethylene Oxide"
                  "< 1.0 mg/kg (ppm)"
                  "Hexane"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Heptane"
                  "< 500 mg/kg (ppm)"
                  "Isobutyl acetate"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Isopropyl acetate"
                  "< 500 mg/kg (ppm)"
                  "Methanol"
                  "< 3000 mg/kg (ppm)"
                ]
                [
                  "Methyl Acetate"
                  "< 500 mg/kg (ppm)"
                  "Methylbutyl Ketone"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Methylene Chloride"
                  "< 1.0 mg/kg (ppm)"
                  "Methylisobutyl Ketone"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Methylbutyl Ketone"
                  "< 50 mg/kg (ppm)"
                  "N,N-Dimethylacetamide"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "N,N-Dimethylformamide"
                  "< 100 mg/kg (ppm)"
                  "N-Dimethylacetamide"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Nitromethane"
                  "< 250 mg/kg (ppm)"
                  "Nitroethane"
                  "< 250 mg/kg (ppm)"
                ]
                [
                  "N-Methylpyrrolidone"
                  "< 100 mg/kg (ppm)"
                  "Pentane"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Propane"
                  "< 500 mg/kg (ppm)"
                  "Propyl Acetate"
                  "< 500 mg/kg (ppm)"
                ]
                [
                  "Pyridine"
                  "< 100 mg/kg (ppm)"
                  "Sulfolane"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Tert-Butylmethyl Ether"
                  "< 500 mg/kg (ppm)"
                  "Tetrahydrofuran"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Tetrahydrofuran"
                  "< 50 mg/kg (ppm)"
                  "Toluene"
                  "< 50 mg/kg (ppm)"
                ]
                [
                  "Tert-Butylmethyl Ether"
                  "< 500 mg/kg (ppm)"
                  "Xylenes (p-, m-, o-)"
                  "< 500 mg/kg (ppm)"
                ]
              ]
              "md" => """
                | Compound               | Result             | Compound                    | Result             |\n
                | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
                | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
                | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
                | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
                | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
                | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
                | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
                | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
                | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
                | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
                | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
                | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
                | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
                | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
                | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
                | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
                | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
                | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
                | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
                | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
                | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
                | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
                | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
                | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
                | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
                | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
                | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
                | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
                | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
                | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
                | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
                """
              "isPerfectTable" => true
              "csv" => """
                "Compound","Result","Compound","Result"\n
                "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
                "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
                "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
                "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
                "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
                "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
                "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
                "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
                "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
                "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
                "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
                "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
                "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
                "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
                "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
                "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
                "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
                "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
                "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
                "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
                "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
                "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
                "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
                "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
                "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
                "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
                "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
                "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
                "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
                "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
                """
            ]
            [
              "type" => "text"
              "value" => """
                **Reported By:**  \n
                Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
                \n
                *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
                *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
                """
              "md" => """
                **Reported By:**  \n
                Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
                \n
                *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
                *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
                """
            ]
          ]
          "status" => "OK"
          "originalOrientationAngle" => 0
          "links" => []
          "triggeredAutoMode" => false
          "parsingMode" => "multimodal-openai-gpt4o"
          "structuredData" => null
          "noStructuredContent" => false
          "noTextContent" => false
        ]
      ]
      "job_metadata" => [
        "credits_used" => 0
        "job_credits_usage" => 0
        "job_pages" => 0
        "job_auto_mode_triggered_pages" => 0
        "job_is_cache_hit" => true
      ]
    ]
    -labName: "Balanced Health Botanicals"
    -sampleName: "FSO 30mg CBD Soft Gels"
    -sampleMatrix: "soft gel capsule"
    -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
    -productType: "cannabis"
    -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
    -products: Doctrine\ORM\PersistentCollection {#1018 …}
  }
  -primaryKeyName: "id"
  -primaryKeyValue: 661
  -permission: null
  -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …}
  -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …}
}
error_bubbling
true
error_mapping
[]
extra_fields_message
"This form should not contain extra fields."
form_attr
false
getter
null
help
null
help_attr
[]
help_html
false
help_translation_parameters
[]
inherit_data
false
invalid_message
"This value is not valid."
invalid_message_parameters
[]
is_empty_callback
null
label
null
label_attr
[]
label_format
null
label_html
false
label_translation_parameters
[]
mapped
true
method
"POST"
post_max_size_message
"The uploaded file was too large. Please try to upload a smaller file."
priority
0
property_path
null
required
true
row_attr
[]
setter
null
translation_domain
"messages"
trim
true
upload_max_size_message
Closure() {#1773
  class: "Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension"
  use: {
    $translator: Symfony\Component\Translation\DataCollectorTranslator {#65 …}
    $message: Closure() {#1770 …}
    $translationDomain: "validators"
  }
}
validation_groups
null

View Vars

Variable Value
action
""
attr
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
attr_translation_parameters
[]
block_prefixes
[
  "form"
  "ea_crud"
  "_LabReport"
]
cache_key
"_LabReport_ea_crud"
compound
true
data
App\Entity\LabReport {#854
  -id: 661
  -name: "Lab Report Page 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1747758760 {#848
    date: 2025-05-20 16:32:40.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744386 {#845
    date: 2025-05-20 12:33:06.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2024-10-21"
  -thcaPercentage: "4.7"
  -totalThcPercentage: "23.4219"
  -deltaNinePercentage: "19.3"
  -deltaNineWithThcaCombined: "24"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
  -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          \n
          # Certificate of Analysis for\n
          Balanced Health Botanicals  \n
          1500 W Hampden Ave, Unit 5G  \n
          Sheridan, CO 80110  \n
          \n
          **Received:** 10/15/2024 @ 21.6 °C  \n
          **Sample ID:** 2410642-001  \n
          **Analyzed:** 10/17/24  \n
          **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
          **Yeast and Mold:** < 10 CFU/g  \n
          \n
          ## 4242551 FSO 30mg CBD Soft Gels\n
          \n
          ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
          \n
          | Compound               | Result             | Compound                    | Result             |\n
          | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
          | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
          | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
          | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
          | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
          | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
          | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
          | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
          | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
          | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
          | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
          | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
          | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
          | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
          | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
          | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
          | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
          | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
          | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
          | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
          | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
          | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
          | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
          | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
          | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
          | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
          | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
          | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
          | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
          \n
          \n
          **Reported By:**  \n
          Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
          \n
          *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
          *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis for"
            "md" => "# Certificate of Analysis for"
          ]
          [
            "type" => "text"
            "value" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
            "md" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "4242551 FSO 30mg CBD Soft Gels"
            "md" => "## 4242551 FSO 30mg CBD Soft Gels"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Compound"
                "Result"
                "Compound"
                "Result"
              ]
              [
                "(±)-2-Butanol"
                "< 10 mg/kg (ppm)"
                "1,1-Dichloroethene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,2-Dichloroethane"
                "< 2.0 mg/kg (ppm)"
                "1,2-Dimethoxyethane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,4-Dioxane"
                "< 2.5 mg/kg (ppm)"
                "1-Butanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1-Butanol"
                "< 500 mg/kg (ppm)"
                "1-Propanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1,2-Dimethylhydrazine"
                "< 2.0 mg/kg (ppm)"
                "2,3-Dimethylbutane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "2-Ethoxyethanol"
                "< 50 mg/kg (ppm)"
                "2-Methoxyethanol"
                "< 50 mg/kg (ppm)"
              ]
              [
                "2-Methyl-1-propanol"
                "< 50 mg/kg (ppm)"
                "2-Methylbutane (Isopentane)"
                "< 500 mg/kg (ppm)"
              ]
              [
                "2-Methylpentane"
                "< 250 mg/kg (ppm)"
                "3-Methylpentane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "3-Methyl-1-Butanol"
                "< 50 mg/kg (ppm)"
                "Acetonitrile"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Acetone"
                "< 50 mg/kg (ppm)"
                "Benzene"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Anisole"
                "< 50.0 mg/kg (ppm)"
                "Chloroform"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Butyl Acetate"
                "< 500 mg/kg (ppm)"
                "Cyclohexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Cumene"
                "< 50 mg/kg (ppm)"
                "Ethanol"
                "< 5000 mg/kg (ppm)"
              ]
              [
                "Diethyl ether"
                "< 500 mg/kg (ppm)"
                "Ethyl benzene"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Acetate"
                "< 500 mg/kg (ppm)"
                "Ethylene Glycol"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Ether"
                "< 500 mg/kg (ppm)"
                "Formamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Ethylene Oxide"
                "< 1.0 mg/kg (ppm)"
                "Hexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Heptane"
                "< 500 mg/kg (ppm)"
                "Isobutyl acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Isopropyl acetate"
                "< 500 mg/kg (ppm)"
                "Methanol"
                "< 3000 mg/kg (ppm)"
              ]
              [
                "Methyl Acetate"
                "< 500 mg/kg (ppm)"
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylene Chloride"
                "< 1.0 mg/kg (ppm)"
                "Methylisobutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
                "N,N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "N,N-Dimethylformamide"
                "< 100 mg/kg (ppm)"
                "N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Nitromethane"
                "< 250 mg/kg (ppm)"
                "Nitroethane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "N-Methylpyrrolidone"
                "< 100 mg/kg (ppm)"
                "Pentane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Propane"
                "< 500 mg/kg (ppm)"
                "Propyl Acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Pyridine"
                "< 100 mg/kg (ppm)"
                "Sulfolane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
                "Toluene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Xylenes (p-, m-, o-)"
                "< 500 mg/kg (ppm)"
              ]
            ]
            "md" => """
              | Compound               | Result             | Compound                    | Result             |\n
              | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
              | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
              | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
              | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
              | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
              | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
              | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
              | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
              | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
              | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
              | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
              | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
              | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
              | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
              | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
              | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
              | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
              | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
              | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
              | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
              | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
              | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
              | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
              | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
              | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
              | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
              | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
              | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
              | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Compound","Result","Compound","Result"\n
              "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
              "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
              "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
              "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
              "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
              "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
              "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
              "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
              "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
              "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
              "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
              "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
              "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
              "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
              "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
              "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
              "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
              "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
              "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
              "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
              "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
              "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
              "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
              "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
              """
          ]
          [
            "type" => "text"
            "value" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
            "md" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Balanced Health Botanicals"
  -sampleName: "FSO 30mg CBD Soft Gels"
  -sampleMatrix: "soft gel capsule"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
disabled
false
ea_crud_form
[
  "assets" => "** This variable no longer stores field assets. Instead, use "ea.crud.fieldAssets()" in your Twig template."
  "entity" => EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844
    -isAccessible: true
    -fqcn: "App\Entity\LabReport"
    -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …}
    -instance: App\Entity\LabReport {#854
      -id: 661
      -name: "Lab Report Page 3"
      -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
      -source: null
      -type: "jpg"
      -project: Proxies\__CG__\App\Entity\Project {#903
        -id: 104
        -name: "pure cbd"
        -url: "https://purecbdnc.com/"
        -prompt: null
        -chatJson: null
        -externalLabReportsUrl: null
        -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
        -productMatchingUrl: null
        -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
        -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
        -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
        -createdAt: DateTime @1744068184 {#1495
          date: 2025-04-07 23:23:04.0 UTC (+00:00)
        }
        -updatedAt: DateTime @1768286193 {#1485
          date: 2026-01-13 06:36:33.0 UTC (+00:00)
        }
        -spiderSourceMatchingUrls: null
        -state: "ready_to_hunt"
        -products: Doctrine\ORM\PersistentCollection {#1560 …}
        -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
        -websiteFramework: "shopify"
        -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
        -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
        -productExcludePaths: null
        -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
        -user: null
        -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
        -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
      }
      -labReportSource: null
      -createdAt: DateTime @1747758760 {#848
        date: 2025-05-20 16:32:40.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1747744386 {#845
        date: 2025-05-20 12:33:06.0 UTC (+00:00)
      }
      -category: null
      -state: "processed"
      -expiryDate: ""
      -extractionDate: "2024-10-21"
      -thcaPercentage: "4.7"
      -totalThcPercentage: "23.4219"
      -deltaNinePercentage: "19.3"
      -deltaNineWithThcaCombined: "24"
      -comments: null
      -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
      -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
      -debugData: null
      -jsonContent: [
        "pages" => [
          [
            "page" => 1
            "md" => """
              \n
              # Certificate of Analysis for\n
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g  \n
              \n
              ## 4242551 FSO 30mg CBD Soft Gels\n
              \n
              ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
              \n
              | Compound               | Result             | Compound                    | Result             |\n
              | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
              | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
              | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
              | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
              | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
              | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
              | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
              | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
              | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
              | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
              | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
              | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
              | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
              | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
              | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
              | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
              | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
              | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
              | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
              | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
              | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
              | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
              | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
              | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
              | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
              | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
              | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
              | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
              | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
              \n
              \n
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
            "images" => [
              [
                "name" => "page_1.jpg"
                "height" => 0
                "width" => 0
                "x" => 0
                "y" => 0
                "type" => "full_page_screenshot"
              ]
            ]
            "charts" => []
            "items" => [
              [
                "type" => "heading"
                "lvl" => 1
                "value" => "Certificate of Analysis for"
                "md" => "# Certificate of Analysis for"
              ]
              [
                "type" => "text"
                "value" => """
                  Balanced Health Botanicals  \n
                  1500 W Hampden Ave, Unit 5G  \n
                  Sheridan, CO 80110  \n
                  \n
                  **Received:** 10/15/2024 @ 21.6 °C  \n
                  **Sample ID:** 2410642-001  \n
                  **Analyzed:** 10/17/24  \n
                  **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
                  **Yeast and Mold:** < 10 CFU/g
                  """
                "md" => """
                  Balanced Health Botanicals  \n
                  1500 W Hampden Ave, Unit 5G  \n
                  Sheridan, CO 80110  \n
                  \n
                  **Received:** 10/15/2024 @ 21.6 °C  \n
                  **Sample ID:** 2410642-001  \n
                  **Analyzed:** 10/17/24  \n
                  **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
                  **Yeast and Mold:** < 10 CFU/g
                  """
              ]
              [
                "type" => "heading"
                "lvl" => 2
                "value" => "4242551 FSO 30mg CBD Soft Gels"
                "md" => "## 4242551 FSO 30mg CBD Soft Gels"
              ]
              [
                "type" => "heading"
                "lvl" => 3
                "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
                "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
              ]
              [
                "type" => "table"
                "rows" => [
                  [
                    "Compound"
                    "Result"
                    "Compound"
                    "Result"
                  ]
                  [
                    "(±)-2-Butanol"
                    "< 10 mg/kg (ppm)"
                    "1,1-Dichloroethene"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "1,2-Dichloroethane"
                    "< 2.0 mg/kg (ppm)"
                    "1,2-Dimethoxyethane"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "1,4-Dioxane"
                    "< 2.5 mg/kg (ppm)"
                    "1-Butanol"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "1-Butanol"
                    "< 500 mg/kg (ppm)"
                    "1-Propanol"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "1,2-Dimethylhydrazine"
                    "< 2.0 mg/kg (ppm)"
                    "2,3-Dimethylbutane"
                    "< 250 mg/kg (ppm)"
                  ]
                  [
                    "2-Ethoxyethanol"
                    "< 50 mg/kg (ppm)"
                    "2-Methoxyethanol"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "2-Methyl-1-propanol"
                    "< 50 mg/kg (ppm)"
                    "2-Methylbutane (Isopentane)"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "2-Methylpentane"
                    "< 250 mg/kg (ppm)"
                    "3-Methylpentane"
                    "< 250 mg/kg (ppm)"
                  ]
                  [
                    "3-Methyl-1-Butanol"
                    "< 50 mg/kg (ppm)"
                    "Acetonitrile"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Acetone"
                    "< 50 mg/kg (ppm)"
                    "Benzene"
                    "< 1.0 mg/kg (ppm)"
                  ]
                  [
                    "Anisole"
                    "< 50.0 mg/kg (ppm)"
                    "Chloroform"
                    "< 1.0 mg/kg (ppm)"
                  ]
                  [
                    "Butyl Acetate"
                    "< 500 mg/kg (ppm)"
                    "Cyclohexane"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "Cumene"
                    "< 50 mg/kg (ppm)"
                    "Ethanol"
                    "< 5000 mg/kg (ppm)"
                  ]
                  [
                    "Diethyl ether"
                    "< 500 mg/kg (ppm)"
                    "Ethyl benzene"
                    "< 100 mg/kg (ppm)"
                  ]
                  [
                    "Ethyl Acetate"
                    "< 500 mg/kg (ppm)"
                    "Ethylene Glycol"
                    "< 100 mg/kg (ppm)"
                  ]
                  [
                    "Ethyl Ether"
                    "< 500 mg/kg (ppm)"
                    "Formamide"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Ethylene Oxide"
                    "< 1.0 mg/kg (ppm)"
                    "Hexane"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "Heptane"
                    "< 500 mg/kg (ppm)"
                    "Isobutyl acetate"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "Isopropyl acetate"
                    "< 500 mg/kg (ppm)"
                    "Methanol"
                    "< 3000 mg/kg (ppm)"
                  ]
                  [
                    "Methyl Acetate"
                    "< 500 mg/kg (ppm)"
                    "Methylbutyl Ketone"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Methylene Chloride"
                    "< 1.0 mg/kg (ppm)"
                    "Methylisobutyl Ketone"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Methylbutyl Ketone"
                    "< 50 mg/kg (ppm)"
                    "N,N-Dimethylacetamide"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "N,N-Dimethylformamide"
                    "< 100 mg/kg (ppm)"
                    "N-Dimethylacetamide"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Nitromethane"
                    "< 250 mg/kg (ppm)"
                    "Nitroethane"
                    "< 250 mg/kg (ppm)"
                  ]
                  [
                    "N-Methylpyrrolidone"
                    "< 100 mg/kg (ppm)"
                    "Pentane"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "Propane"
                    "< 500 mg/kg (ppm)"
                    "Propyl Acetate"
                    "< 500 mg/kg (ppm)"
                  ]
                  [
                    "Pyridine"
                    "< 100 mg/kg (ppm)"
                    "Sulfolane"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Tert-Butylmethyl Ether"
                    "< 500 mg/kg (ppm)"
                    "Tetrahydrofuran"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Tetrahydrofuran"
                    "< 50 mg/kg (ppm)"
                    "Toluene"
                    "< 50 mg/kg (ppm)"
                  ]
                  [
                    "Tert-Butylmethyl Ether"
                    "< 500 mg/kg (ppm)"
                    "Xylenes (p-, m-, o-)"
                    "< 500 mg/kg (ppm)"
                  ]
                ]
                "md" => """
                  | Compound               | Result             | Compound                    | Result             |\n
                  | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
                  | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
                  | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
                  | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
                  | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
                  | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
                  | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
                  | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
                  | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
                  | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
                  | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
                  | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
                  | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
                  | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
                  | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
                  | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
                  | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
                  | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
                  | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
                  | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
                  | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
                  | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
                  | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
                  | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
                  | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
                  | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
                  | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
                  | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
                  | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
                  | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
                  | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
                  """
                "isPerfectTable" => true
                "csv" => """
                  "Compound","Result","Compound","Result"\n
                  "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
                  "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
                  "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
                  "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
                  "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
                  "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
                  "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
                  "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
                  "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
                  "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
                  "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
                  "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
                  "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
                  "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
                  "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
                  "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
                  "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
                  "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
                  "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
                  "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
                  "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
                  "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
                  "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
                  "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
                  "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
                  "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
                  "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
                  "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
                  "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
                  "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
                  """
              ]
              [
                "type" => "text"
                "value" => """
                  **Reported By:**  \n
                  Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
                  \n
                  *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
                  *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
                  """
                "md" => """
                  **Reported By:**  \n
                  Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
                  \n
                  *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
                  *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
                  """
              ]
            ]
            "status" => "OK"
            "originalOrientationAngle" => 0
            "links" => []
            "triggeredAutoMode" => false
            "parsingMode" => "multimodal-openai-gpt4o"
            "structuredData" => null
            "noStructuredContent" => false
            "noTextContent" => false
          ]
        ]
        "job_metadata" => [
          "credits_used" => 0
          "job_credits_usage" => 0
          "job_pages" => 0
          "job_auto_mode_triggered_pages" => 0
          "job_is_cache_hit" => true
        ]
      ]
      -labName: "Balanced Health Botanicals"
      -sampleName: "FSO 30mg CBD Soft Gels"
      -sampleMatrix: "soft gel capsule"
      -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
      -productType: "cannabis"
      -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
      -products: Doctrine\ORM\PersistentCollection {#1018 …}
    }
    -primaryKeyName: "id"
    -primaryKeyValue: 661
    -permission: null
    -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …}
    -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …}
  }
  "form_tabs" => []
  "form_fieldsets" => []
]
ea_vars
EasyCorp\Bundle\EasyAdminBundle\Dto\FormVarsDto {#4043
  -fieldDto: null
  -entityDto: null
}
errors
Symfony\Component\Form\FormErrorIterator {#1829
  -errors: []
  -form: Symfony\Component\Form\Form {#1779 …}
}
form
Symfony\Component\Form\FormView {#1838 …5}
full_name
"LabReport"
help
null
help_attr
[]
help_html
false
help_translation_parameters
[]
id
"LabReport"
label
null
label_attr
[]
label_format
null
label_html
false
label_translation_parameters
[]
method
"POST"
multipart
false
name
"LabReport"
priority
0
required
true
row_attr
[]
submitted
false
translation_domain
"messages"
unique_block_prefix
"_LabReport"
valid
true
value
App\Entity\LabReport {#854
  -id: 661
  -name: "Lab Report Page 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA3_59372e94-3461-4b11-bc82-7be7346690e1.jpg"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1747758760 {#848
    date: 2025-05-20 16:32:40.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744386 {#845
    date: 2025-05-20 12:33:06.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2024-10-21"
  -thcaPercentage: "4.7"
  -totalThcPercentage: "23.4219"
  -deltaNinePercentage: "19.3"
  -deltaNineWithThcaCombined: "24"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage3.jpg"
  -markdownContent: ""\n# Certificate of Analysis for\nBalanced Health Botanicals  \n1500 W Hampden Ave, Unit 5G  \nSheridan, CO 80110  \n\n**Received:** 10\/15\/2024 @ 21.6 \u00b0C  \n**Sample ID:** 2410642-001  \n**Analyzed:** 10\/17\/24  \n**YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm\u2122) Analyzed 10\/18\/24  \n**Yeast and Mold:** < 10 CFU\/g  \n\n## 4242551 FSO 30mg CBD Soft Gels\n\n### ResSolv2.: Residual Solvents by Headspace GC\/MS (VF-624MS)\n\n| Compound               | Result             | Compound                    | Result             |\n| ---------------------- | ------------------ | --------------------------- | ------------------ |\n| (\u00b1)-2-Butanol          | < 10 mg\/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg\/kg (ppm)   |\n| 1,2-Dichloroethane     | < 2.0 mg\/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg\/kg (ppm)   |\n| 1,4-Dioxane            | < 2.5 mg\/kg (ppm)  | 1-Butanol                   | < 500 mg\/kg (ppm)  |\n| 1-Butanol              | < 500 mg\/kg (ppm)  | 1-Propanol                  | < 500 mg\/kg (ppm)  |\n| 1,2-Dimethylhydrazine  | < 2.0 mg\/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg\/kg (ppm)  |\n| 2-Ethoxyethanol        | < 50 mg\/kg (ppm)   | 2-Methoxyethanol            | < 50 mg\/kg (ppm)   |\n| 2-Methyl-1-propanol    | < 50 mg\/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg\/kg (ppm)  |\n| 2-Methylpentane        | < 250 mg\/kg (ppm)  | 3-Methylpentane             | < 250 mg\/kg (ppm)  |\n| 3-Methyl-1-Butanol     | < 50 mg\/kg (ppm)   | Acetonitrile                | < 50 mg\/kg (ppm)   |\n| Acetone                | < 50 mg\/kg (ppm)   | Benzene                     | < 1.0 mg\/kg (ppm)  |\n| Anisole                | < 50.0 mg\/kg (ppm) | Chloroform                  | < 1.0 mg\/kg (ppm)  |\n| Butyl Acetate          | < 500 mg\/kg (ppm)  | Cyclohexane                 | < 500 mg\/kg (ppm)  |\n| Cumene                 | < 50 mg\/kg (ppm)   | Ethanol                     | < 5000 mg\/kg (ppm) |\n| Diethyl ether          | < 500 mg\/kg (ppm)  | Ethyl benzene               | < 100 mg\/kg (ppm)  |\n| Ethyl Acetate          | < 500 mg\/kg (ppm)  | Ethylene Glycol             | < 100 mg\/kg (ppm)  |\n| Ethyl Ether            | < 500 mg\/kg (ppm)  | Formamide                   | < 50 mg\/kg (ppm)   |\n| Ethylene Oxide         | < 1.0 mg\/kg (ppm)  | Hexane                      | < 500 mg\/kg (ppm)  |\n| Heptane                | < 500 mg\/kg (ppm)  | Isobutyl acetate            | < 500 mg\/kg (ppm)  |\n| Isopropyl acetate      | < 500 mg\/kg (ppm)  | Methanol                    | < 3000 mg\/kg (ppm) |\n| Methyl Acetate         | < 500 mg\/kg (ppm)  | Methylbutyl Ketone          | < 50 mg\/kg (ppm)   |\n| Methylene Chloride     | < 1.0 mg\/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg\/kg (ppm)   |\n| Methylbutyl Ketone     | < 50 mg\/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg\/kg (ppm)   |\n| N,N-Dimethylformamide  | < 100 mg\/kg (ppm)  | N-Dimethylacetamide         | < 50 mg\/kg (ppm)   |\n| Nitromethane           | < 250 mg\/kg (ppm)  | Nitroethane                 | < 250 mg\/kg (ppm)  |\n| N-Methylpyrrolidone    | < 100 mg\/kg (ppm)  | Pentane                     | < 500 mg\/kg (ppm)  |\n| Propane                | < 500 mg\/kg (ppm)  | Propyl Acetate              | < 500 mg\/kg (ppm)  |\n| Pyridine               | < 100 mg\/kg (ppm)  | Sulfolane                   | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Tetrahydrofuran             | < 50 mg\/kg (ppm)   |\n| Tetrahydrofuran        | < 50 mg\/kg (ppm)   | Toluene                     | < 50 mg\/kg (ppm)   |\n| Tert-Butylmethyl Ether | < 500 mg\/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg\/kg (ppm)  |\n\n\n**Reported By:**  \nThu D Ly, Chemistry Laboratory Technician, 10\/21\/2024  \n\n*This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n*The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          \n
          # Certificate of Analysis for\n
          Balanced Health Botanicals  \n
          1500 W Hampden Ave, Unit 5G  \n
          Sheridan, CO 80110  \n
          \n
          **Received:** 10/15/2024 @ 21.6 °C  \n
          **Sample ID:** 2410642-001  \n
          **Analyzed:** 10/17/24  \n
          **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
          **Yeast and Mold:** < 10 CFU/g  \n
          \n
          ## 4242551 FSO 30mg CBD Soft Gels\n
          \n
          ### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)\n
          \n
          | Compound               | Result             | Compound                    | Result             |\n
          | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
          | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
          | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
          | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
          | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
          | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
          | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
          | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
          | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
          | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
          | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
          | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
          | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
          | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
          | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
          | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
          | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
          | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
          | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
          | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
          | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
          | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
          | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
          | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
          | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
          | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
          | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
          | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
          | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
          | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |\n
          \n
          \n
          **Reported By:**  \n
          Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
          \n
          *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
          *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis for"
            "md" => "# Certificate of Analysis for"
          ]
          [
            "type" => "text"
            "value" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
            "md" => """
              Balanced Health Botanicals  \n
              1500 W Hampden Ave, Unit 5G  \n
              Sheridan, CO 80110  \n
              \n
              **Received:** 10/15/2024 @ 21.6 °C  \n
              **Sample ID:** 2410642-001  \n
              **Analyzed:** 10/17/24  \n
              **YM 1.4:** YM by mass via AOAC RI 121301 (Petrifilm™) Analyzed 10/18/24  \n
              **Yeast and Mold:** < 10 CFU/g
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "4242551 FSO 30mg CBD Soft Gels"
            "md" => "## 4242551 FSO 30mg CBD Soft Gels"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
            "md" => "### ResSolv2.: Residual Solvents by Headspace GC/MS (VF-624MS)"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Compound"
                "Result"
                "Compound"
                "Result"
              ]
              [
                "(±)-2-Butanol"
                "< 10 mg/kg (ppm)"
                "1,1-Dichloroethene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,2-Dichloroethane"
                "< 2.0 mg/kg (ppm)"
                "1,2-Dimethoxyethane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "1,4-Dioxane"
                "< 2.5 mg/kg (ppm)"
                "1-Butanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1-Butanol"
                "< 500 mg/kg (ppm)"
                "1-Propanol"
                "< 500 mg/kg (ppm)"
              ]
              [
                "1,2-Dimethylhydrazine"
                "< 2.0 mg/kg (ppm)"
                "2,3-Dimethylbutane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "2-Ethoxyethanol"
                "< 50 mg/kg (ppm)"
                "2-Methoxyethanol"
                "< 50 mg/kg (ppm)"
              ]
              [
                "2-Methyl-1-propanol"
                "< 50 mg/kg (ppm)"
                "2-Methylbutane (Isopentane)"
                "< 500 mg/kg (ppm)"
              ]
              [
                "2-Methylpentane"
                "< 250 mg/kg (ppm)"
                "3-Methylpentane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "3-Methyl-1-Butanol"
                "< 50 mg/kg (ppm)"
                "Acetonitrile"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Acetone"
                "< 50 mg/kg (ppm)"
                "Benzene"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Anisole"
                "< 50.0 mg/kg (ppm)"
                "Chloroform"
                "< 1.0 mg/kg (ppm)"
              ]
              [
                "Butyl Acetate"
                "< 500 mg/kg (ppm)"
                "Cyclohexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Cumene"
                "< 50 mg/kg (ppm)"
                "Ethanol"
                "< 5000 mg/kg (ppm)"
              ]
              [
                "Diethyl ether"
                "< 500 mg/kg (ppm)"
                "Ethyl benzene"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Acetate"
                "< 500 mg/kg (ppm)"
                "Ethylene Glycol"
                "< 100 mg/kg (ppm)"
              ]
              [
                "Ethyl Ether"
                "< 500 mg/kg (ppm)"
                "Formamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Ethylene Oxide"
                "< 1.0 mg/kg (ppm)"
                "Hexane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Heptane"
                "< 500 mg/kg (ppm)"
                "Isobutyl acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Isopropyl acetate"
                "< 500 mg/kg (ppm)"
                "Methanol"
                "< 3000 mg/kg (ppm)"
              ]
              [
                "Methyl Acetate"
                "< 500 mg/kg (ppm)"
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylene Chloride"
                "< 1.0 mg/kg (ppm)"
                "Methylisobutyl Ketone"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 mg/kg (ppm)"
                "N,N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "N,N-Dimethylformamide"
                "< 100 mg/kg (ppm)"
                "N-Dimethylacetamide"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Nitromethane"
                "< 250 mg/kg (ppm)"
                "Nitroethane"
                "< 250 mg/kg (ppm)"
              ]
              [
                "N-Methylpyrrolidone"
                "< 100 mg/kg (ppm)"
                "Pentane"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Propane"
                "< 500 mg/kg (ppm)"
                "Propyl Acetate"
                "< 500 mg/kg (ppm)"
              ]
              [
                "Pyridine"
                "< 100 mg/kg (ppm)"
                "Sulfolane"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tetrahydrofuran"
                "< 50 mg/kg (ppm)"
                "Toluene"
                "< 50 mg/kg (ppm)"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 500 mg/kg (ppm)"
                "Xylenes (p-, m-, o-)"
                "< 500 mg/kg (ppm)"
              ]
            ]
            "md" => """
              | Compound               | Result             | Compound                    | Result             |\n
              | ---------------------- | ------------------ | --------------------------- | ------------------ |\n
              | (±)-2-Butanol          | < 10 mg/kg (ppm)   | 1,1-Dichloroethene          | < 50 mg/kg (ppm)   |\n
              | 1,2-Dichloroethane     | < 2.0 mg/kg (ppm)  | 1,2-Dimethoxyethane         | < 50 mg/kg (ppm)   |\n
              | 1,4-Dioxane            | < 2.5 mg/kg (ppm)  | 1-Butanol                   | < 500 mg/kg (ppm)  |\n
              | 1-Butanol              | < 500 mg/kg (ppm)  | 1-Propanol                  | < 500 mg/kg (ppm)  |\n
              | 1,2-Dimethylhydrazine  | < 2.0 mg/kg (ppm)  | 2,3-Dimethylbutane          | < 250 mg/kg (ppm)  |\n
              | 2-Ethoxyethanol        | < 50 mg/kg (ppm)   | 2-Methoxyethanol            | < 50 mg/kg (ppm)   |\n
              | 2-Methyl-1-propanol    | < 50 mg/kg (ppm)   | 2-Methylbutane (Isopentane) | < 500 mg/kg (ppm)  |\n
              | 2-Methylpentane        | < 250 mg/kg (ppm)  | 3-Methylpentane             | < 250 mg/kg (ppm)  |\n
              | 3-Methyl-1-Butanol     | < 50 mg/kg (ppm)   | Acetonitrile                | < 50 mg/kg (ppm)   |\n
              | Acetone                | < 50 mg/kg (ppm)   | Benzene                     | < 1.0 mg/kg (ppm)  |\n
              | Anisole                | < 50.0 mg/kg (ppm) | Chloroform                  | < 1.0 mg/kg (ppm)  |\n
              | Butyl Acetate          | < 500 mg/kg (ppm)  | Cyclohexane                 | < 500 mg/kg (ppm)  |\n
              | Cumene                 | < 50 mg/kg (ppm)   | Ethanol                     | < 5000 mg/kg (ppm) |\n
              | Diethyl ether          | < 500 mg/kg (ppm)  | Ethyl benzene               | < 100 mg/kg (ppm)  |\n
              | Ethyl Acetate          | < 500 mg/kg (ppm)  | Ethylene Glycol             | < 100 mg/kg (ppm)  |\n
              | Ethyl Ether            | < 500 mg/kg (ppm)  | Formamide                   | < 50 mg/kg (ppm)   |\n
              | Ethylene Oxide         | < 1.0 mg/kg (ppm)  | Hexane                      | < 500 mg/kg (ppm)  |\n
              | Heptane                | < 500 mg/kg (ppm)  | Isobutyl acetate            | < 500 mg/kg (ppm)  |\n
              | Isopropyl acetate      | < 500 mg/kg (ppm)  | Methanol                    | < 3000 mg/kg (ppm) |\n
              | Methyl Acetate         | < 500 mg/kg (ppm)  | Methylbutyl Ketone          | < 50 mg/kg (ppm)   |\n
              | Methylene Chloride     | < 1.0 mg/kg (ppm)  | Methylisobutyl Ketone       | < 50 mg/kg (ppm)   |\n
              | Methylbutyl Ketone     | < 50 mg/kg (ppm)   | N,N-Dimethylacetamide       | < 50 mg/kg (ppm)   |\n
              | N,N-Dimethylformamide  | < 100 mg/kg (ppm)  | N-Dimethylacetamide         | < 50 mg/kg (ppm)   |\n
              | Nitromethane           | < 250 mg/kg (ppm)  | Nitroethane                 | < 250 mg/kg (ppm)  |\n
              | N-Methylpyrrolidone    | < 100 mg/kg (ppm)  | Pentane                     | < 500 mg/kg (ppm)  |\n
              | Propane                | < 500 mg/kg (ppm)  | Propyl Acetate              | < 500 mg/kg (ppm)  |\n
              | Pyridine               | < 100 mg/kg (ppm)  | Sulfolane                   | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Tetrahydrofuran             | < 50 mg/kg (ppm)   |\n
              | Tetrahydrofuran        | < 50 mg/kg (ppm)   | Toluene                     | < 50 mg/kg (ppm)   |\n
              | Tert-Butylmethyl Ether | < 500 mg/kg (ppm)  | Xylenes (p-, m-, o-)        | < 500 mg/kg (ppm)  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Compound","Result","Compound","Result"\n
              "(±)-2-Butanol","< 10 mg/kg (ppm)","1,1-Dichloroethene","< 50 mg/kg (ppm)"\n
              "1,2-Dichloroethane","< 2.0 mg/kg (ppm)","1,2-Dimethoxyethane","< 50 mg/kg (ppm)"\n
              "1,4-Dioxane","< 2.5 mg/kg (ppm)","1-Butanol","< 500 mg/kg (ppm)"\n
              "1-Butanol","< 500 mg/kg (ppm)","1-Propanol","< 500 mg/kg (ppm)"\n
              "1,2-Dimethylhydrazine","< 2.0 mg/kg (ppm)","2,3-Dimethylbutane","< 250 mg/kg (ppm)"\n
              "2-Ethoxyethanol","< 50 mg/kg (ppm)","2-Methoxyethanol","< 50 mg/kg (ppm)"\n
              "2-Methyl-1-propanol","< 50 mg/kg (ppm)","2-Methylbutane (Isopentane)","< 500 mg/kg (ppm)"\n
              "2-Methylpentane","< 250 mg/kg (ppm)","3-Methylpentane","< 250 mg/kg (ppm)"\n
              "3-Methyl-1-Butanol","< 50 mg/kg (ppm)","Acetonitrile","< 50 mg/kg (ppm)"\n
              "Acetone","< 50 mg/kg (ppm)","Benzene","< 1.0 mg/kg (ppm)"\n
              "Anisole","< 50.0 mg/kg (ppm)","Chloroform","< 1.0 mg/kg (ppm)"\n
              "Butyl Acetate","< 500 mg/kg (ppm)","Cyclohexane","< 500 mg/kg (ppm)"\n
              "Cumene","< 50 mg/kg (ppm)","Ethanol","< 5000 mg/kg (ppm)"\n
              "Diethyl ether","< 500 mg/kg (ppm)","Ethyl benzene","< 100 mg/kg (ppm)"\n
              "Ethyl Acetate","< 500 mg/kg (ppm)","Ethylene Glycol","< 100 mg/kg (ppm)"\n
              "Ethyl Ether","< 500 mg/kg (ppm)","Formamide","< 50 mg/kg (ppm)"\n
              "Ethylene Oxide","< 1.0 mg/kg (ppm)","Hexane","< 500 mg/kg (ppm)"\n
              "Heptane","< 500 mg/kg (ppm)","Isobutyl acetate","< 500 mg/kg (ppm)"\n
              "Isopropyl acetate","< 500 mg/kg (ppm)","Methanol","< 3000 mg/kg (ppm)"\n
              "Methyl Acetate","< 500 mg/kg (ppm)","Methylbutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylene Chloride","< 1.0 mg/kg (ppm)","Methylisobutyl Ketone","< 50 mg/kg (ppm)"\n
              "Methylbutyl Ketone","< 50 mg/kg (ppm)","N,N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "N,N-Dimethylformamide","< 100 mg/kg (ppm)","N-Dimethylacetamide","< 50 mg/kg (ppm)"\n
              "Nitromethane","< 250 mg/kg (ppm)","Nitroethane","< 250 mg/kg (ppm)"\n
              "N-Methylpyrrolidone","< 100 mg/kg (ppm)","Pentane","< 500 mg/kg (ppm)"\n
              "Propane","< 500 mg/kg (ppm)","Propyl Acetate","< 500 mg/kg (ppm)"\n
              "Pyridine","< 100 mg/kg (ppm)","Sulfolane","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Tetrahydrofuran","< 50 mg/kg (ppm)"\n
              "Tetrahydrofuran","< 50 mg/kg (ppm)","Toluene","< 50 mg/kg (ppm)"\n
              "Tert-Butylmethyl Ether","< 500 mg/kg (ppm)","Xylenes (p-, m-, o-)","< 500 mg/kg (ppm)"
              """
          ]
          [
            "type" => "text"
            "value" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
            "md" => """
              **Reported By:**  \n
              Thu D Ly, Chemistry Laboratory Technician, 10/21/2024  \n
              \n
              *This document is confidential and is meant solely for the individual or entity designated above. MBL Terms and Conditions apply.*  \n
              *The Certificate of Analysis should only be reproduced in full. Results contained herein are representative of and only apply to the sample portion submitted to or collected by MBL.*
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Balanced Health Botanicals"
  -sampleName: "FSO 30mg CBD Soft Gels"
  -sampleMatrix: "soft gel capsule"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}