type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-07-25T18:33:37Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-07-25T18:33:37Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd161
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd162
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd15
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd616
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd617
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd453
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24562
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd1127
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd444
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd445
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd441
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16369
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd1127
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16364
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd447
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd448
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd441
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16371
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd1127
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16364
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd619
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd620
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd453
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24560
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd1127
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd158
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd159
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd15
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24558
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd15
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24555
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd441
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24556
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd453
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24557
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24559
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16364
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd617
type: simplelicensing_LicenseExpression
simplelicensing license expression: (GPL-1.0-or-later or Artistic-1.0-perl) and (GPL-2.0-or-later or Artistic-1.0-perl) and MIT and UCD and Public Domain and BSD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd1127
type: simplelicensing_LicenseExpression
simplelicensing license expression: BSD-3-Clause
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd162
type: simplelicensing_LicenseExpression
simplelicensing license expression: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net-2.0 and ISC and Public Domain and GFDL-1.3-only
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd620
type: simplelicensing_LicenseExpression
simplelicensing license expression: (GPL-1.0-or-later or Artistic-1.0-perl) and (GPL-2.0-or-later or Artistic-1.0-perl) and MIT and UCD and Public Domain and BSD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd445
type: simplelicensing_LicenseExpression
simplelicensing license expression: (GPL-1.0-or-later or Artistic-1.0-perl) and MIT and UCD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd159
type: simplelicensing_LicenseExpression
simplelicensing license expression: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net-2.0 and ISC and Public Domain and GFDL-1.3-only
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd448
type: simplelicensing_LicenseExpression
simplelicensing license expression: (GPL-1.0-or-later or Artistic-1.0-perl) and MIT and UCD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16370
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd618
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24561
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd446
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd160
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16364
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd16370
software download location: NOASSERTION
summary: Low-level DNS(SEC) library with API
software package version: 0:1.8.3-2.oe2403sp1
software home page: https://www.nlnetlabs.nl/projects/ldns/about/
description: The goal of ldns is to simplify DNS programming, it supports recent RFCs like the DNSSEC documents, and allows developers to easily create software conforming to current RFCs, and experimental software for current Internet Drafts. A secondary benefit of using ldns is speed; ldns is written in C it should be a lot faster than Perl.
name: ldns
software source info: acquired package info from repodata DB: repodata/e802af2051d51f58c8fb57056c7b77a907c36b8f997e1a71f828dbf9d916677d-primary.sqlite.bz2
software package url: pkg:rpm/ldns@1.8.3-2.oe2403sp1?arch=x86_64&epoch=0&upstream=ldns-1.8.3-2.oe2403sp1.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd453
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd618
software download location: NOASSERTION
summary: A highly capable, feature-rich programming language
software package version: 4:5.38.0-10.oe2403sp1
software home page: https://www.perl.org/
description: Perl 5 is a highly capable, feature-rich programming language with over 30 years of development. Perl 5 runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects.
name: perl
software source info: acquired package info from repodata DB: repodata/e802af2051d51f58c8fb57056c7b77a907c36b8f997e1a71f828dbf9d916677d-primary.sqlite.bz2
software package url: pkg:rpm/perl@5.38.0-10.oe2403sp1?arch=x86_64&epoch=4&upstream=perl-5.38.0-10.oe2403sp1.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd441
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd446
software download location: NOASSERTION
summary: The libraries for the perl
software package version: 4:5.38.0-10.oe2403sp1
software home page: https://www.perl.org/
description: This package is the shared library for perl.
name: perl-libs
software source info: acquired package info from repodata DB: repodata/e802af2051d51f58c8fb57056c7b77a907c36b8f997e1a71f828dbf9d916677d-primary.sqlite.bz2
software package url: pkg:rpm/perl-libs@5.38.0-10.oe2403sp1?arch=x86_64&epoch=4&upstream=perl-5.38.0-10.oe2403sp1.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd15
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd160
software download location: NOASSERTION
summary: The GNU libc libraries
software package version: 0:2.38-101.oe2403sp1
software home page: http://www.gnu.org/software/glibc/
description: The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.
name: glibc
software source info: acquired package info from repodata DB: repodata/e802af2051d51f58c8fb57056c7b77a907c36b8f997e1a71f828dbf9d916677d-primary.sqlite.bz2
software package url: pkg:rpm/glibc@2.38-101.oe2403sp1?arch=x86_64&epoch=0&upstream=glibc-2.38-101.oe2403sp1.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24554
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/SPDXRef-gnrtd24561
software download location: NOASSERTION
summary: Perl information for ldns
software package version: 0:1.8.3-2.oe2403sp1
software home page: https://www.nlnetlabs.nl/projects/ldns/about/
description: Perl packages for ldns
name: perl-ldns
software source info: acquired package info from repodata DB: repodata/e802af2051d51f58c8fb57056c7b77a907c36b8f997e1a71f828dbf9d916677d-primary.sqlite.bz2
software package url: pkg:rpm/perl-ldns@1.8.3-2.oe2403sp1?arch=x86_64&epoch=0&upstream=ldns-1.8.3-2.oe2403sp1.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP1/update/x86_64-be7b6e70-1d48-41c0-917e-e3614fbeb88d-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0