--- apiVersion: v1 items: - apiVersion: v1 data: cnibincopy.sh: |- #!/bin/bash set -e function log() { echo "$(date --iso-8601=seconds) [cnibincopy] ${1}" } DESTINATION_DIRECTORY=/host/opt/cni/bin/ # Perform validation of usage if [ -z "$RHEL8_SOURCE_DIRECTORY" ] || [ -z "$RHEL9_SOURCE_DIRECTORY" ] || [ -z "$DEFAULT_SOURCE_DIRECTORY" ]; then log "FATAL ERROR: You must set env variables: RHEL8_SOURCE_DIRECTORY, RHEL9_SOURCE_DIRECTORY, DEFAULT_SOURCE_DIRECTORY" exit 1 fi if [ ! -d "$DESTINATION_DIRECTORY" ]; then log "FATAL ERROR: Destination directory ($DESTINATION_DIRECTORY) does not exist" exit 1 fi # Collect host OS information . /host/etc/os-release rhelmajor= # detect which version we're using in order to copy the proper binaries case "${ID}" in rhcos|scos) RHEL_VERSION=$(echo "${CPE_NAME}" | cut -f 5 -d :) rhelmajor=$(echo $RHEL_VERSION | sed -E 's/([0-9]+)\.{1}[0-9]+(\.[0-9]+)?/\1/') ;; rhel|centos) rhelmajor=$(echo "${VERSION_ID}" | cut -f 1 -d .) ;; fedora) if [ "${VARIANT_ID}" == "coreos" ]; then rhelmajor=8 else log "FATAL ERROR: Unsupported Fedora variant=${VARIANT_ID}" exit 1 fi ;; *) log "FATAL ERROR: Unsupported OS ID=${ID}"; exit 1 ;; esac # Set which directory we'll copy from, detect if it exists sourcedir= founddir=false case "${rhelmajor}" in 8) if [ -d "${RHEL8_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL8_SOURCE_DIRECTORY} founddir=true fi ;; 9) if [ -d "${RHEL9_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL9_SOURCE_DIRECTORY} founddir=true fi ;; *) log "ERROR: RHEL Major Version Unsupported, rhelmajor=${rhelmajor}" ;; esac # When it doesn't exist, fall back to the original directory. if [ "$founddir" == false ]; then log "Source directory unavailable for OS version: ${rhelmajor}" sourcedir=$DEFAULT_SOURCE_DIRECTORY fi # Use a subdirectory called "upgrade" so we can atomically move fully copied files. # We now use --remove-destination after running into an issue with -f not working over symlinks UPGRADE_DIRECTORY=${DESTINATION_DIRECTORY}upgrade_$(uuidgen) rm -Rf $UPGRADE_DIRECTORY mkdir -p $UPGRADE_DIRECTORY cp -r --remove-destination ${sourcedir}* $UPGRADE_DIRECTORY if [ $? -eq 0 ]; then log "Successfully copied files in ${sourcedir} to $UPGRADE_DIRECTORY" else log "Failed to copy files in ${sourcedir} to $UPGRADE_DIRECTORY" rm -Rf $UPGRADE_DIRECTORY exit 1 fi mv -f $UPGRADE_DIRECTORY/* ${DESTINATION_DIRECTORY}/ if [ $? -eq 0 ]; then log "Successfully moved files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" else log "Failed to move files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" rm -Rf $UPGRADE_DIRECTORY exit 1 fi rm -Rf $UPGRADE_DIRECTORY kind: ConfigMap metadata: annotations: kubernetes.io/description: | This is a script used to copy CNI binaries based on host OS release.openshift.io/version: 4.21.27 creationTimestamp: "2026-08-04T10:21:40Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:cnibincopy.sh: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"b329bf72-4fd8-41ad-9538-7bac896c8b99"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-04T10:21:40Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b329bf72-4fd8-41ad-9538-7bac896c8b99 resourceVersion: "2355" uid: 13597898-4e01-45d7-be02-2dad934f39d9 - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.27 creationTimestamp: "2026-08-04T10:21:39Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:allowlist.conf: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} f:release.openshift.io/version: {} manager: network-operator operation: Update time: "2026-08-04T10:21:39Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2347" uid: aa16da82-32c1-47aa-9d38-610efddc67d6 - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.27 creationTimestamp: "2026-08-04T10:21:39Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:allowlist.conf: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"b329bf72-4fd8-41ad-9538-7bac896c8b99"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-04T10:21:39Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b329bf72-4fd8-41ad-9538-7bac896c8b99 resourceVersion: "2346" uid: f8655cd0-3a7f-4920-bae4-bb8b907a95a9 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIILYBOxERpDkswDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDgwNDEwMTkwOVoX DTM2MDgwMTEwMTkwOVowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5GHuQOIf2O2 YP+sWAx9h1Aq3MrOdkZIwDz0xAh3Bu5ID7QvABWjICSWvXN+cHFzGvWjiZCPDMLQ 2FsJeEkQA0N+Ddtus74qy6BHHJZoPZfT7TueKbqHIsfaQkyapWQN9q25VH01vETd QfysR5mz9Ga7GfXuNvufAYXTJTBBaiwYXJqNHwqDPj95lbve9abQ8MODwjCWtRKr xk6aYBBgqaCHLOu8DY/BZXuI+J+5wounr5luA+8Qs+7VuMyTVMLh5sTMG3Zz4DxI Q+RvNvRR7AOBpMYn4OIvMni124F6v4ok1R+75EYvs2AvY+73U0+lUx9EyS1GBaRf JKaIj/q+pwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRACisEW4p4uapd3yp6wg/lNwJNC6IE4qMCYUqJV6E8RsTL0VAR stBkSIYATBR3p8cYu2r9XAL/xVZABgFd4rVZbDANBgkqhkiG9w0BAQsFAAOCAQEA RJZ1LuR5o0aoFsIzS/Y1rCSREq6sEB2V1MnfdJ01fFkmRXCnYy94hHC3uRoNZZNR n3I4jmhQH4unuUY97HX7JeZ2NG276nB6EQUMa46kNodD6LXgY5aTrR2lglofv2bS Kxf1cR+qK3RFaU6OXQGIiQ0RZVsZv42cT5qRKWuXLK16Jw2GXQRIqgdcB9Wx+U3X QOkbySh0+rr/TtMqw0Dwy7tTfHVVI8UeJ3TjdDYRfU6GWywyciTlxI21TCZvj1Qy lOJtTf/+VWQ8LXs1mLBej1/xXbFtbpBwpCLZO7VabSsu4oc2kHPDfk/6hWsMYJTn P3Nlb+JNWRBeW++LlhJWAg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIJF6t5NwpT4YwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDgwNDEwMTk0NFoX DTI3MDgwNDEwMTk0NFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AML90VnFW3wxuObT2yc3oKxa1MNv/QXv7Ht6HK7z3d04TveUSdEBytU4GRe/0aX0 TF7+50BsHwAS7twVm5en2E/EEIY+o5z1ErmQSmjif2lfCNkNdWnZfhzcdyk9+pRe vBDnrVzXosu5U7SSs/XG1El6Ccu62l9eG7u4bKxz1PFqiJZqqTP/2zPVAsVqzp2W gqijOs4Fj/jNhDGyZeghs5sL36sX/0Wst07lsi5o+Md5Cx0kcoqyssTOdxLCvd8u nENglYZcLKpOr3XVHs/ZZfqSODyyiIgjrzLmMp7CzjQiXPU2+TqOnJPpETgljSi9 LPy8zJ0aILXNWJIAx7eEyykCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRA+vwTpZfGSMIuMW77WCYTVjNmdODWySDVXtw11Uw5mJi523HkVpLyA6aa ZnvmQ0w8sF1byPDPx1cdvSYRvhfb3TBLBgNVHSMERDBCgEAKKwRbini5ql3fKnrC D+U3Ak0LogTiowJhSolXoTxGxMvRUBGy0GRIhgBMFHenxxi7av1cAv/FVkAGAV3i tVlsMEsGA1UdEQREMEKCQCouYXBwcy5jMjQ4YTljYS1jYTdiLTRlZDItOWRmZS1h ZDQ3NWI5Y2NhNTAucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAFj2EaOBtzseOr454yAtDjGmWuUeratwMcFpLxb6j3soe6tu0GfyjlAk4TzG bDj5nbPhl2oz3te+KlDIoi+z7LAGLamLmy/eK9rKyu6sDxTqxjdLcegLq2WUo1Y7 Hs8Mq3F/HF7R7CD+NjVNT9eMBWsdiy10nyOZBnuPHxXmk28JzxaKqMDy5Uix0G5M CtMarEjE4RGtKljCufweG6QB6RG1OaEv2kk4EvgxxP5GQRVtb69TyPiwZDLTG0pj nROzHcH18Undo3ajZmKoDx6ne9gBluzQa2b1UKCf8sQYX6+6EMi6eoj+OhUfSe6Y bmK0zhU5CQrovWORWocg7aC585Y= -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: kubernetes.io/description: Contains a CA bundle that can be used to verify the kube-apiserver when using internal endpoints such as the internal service IP or kubernetes.default.svc. No other usage is guaranteed across distributions of Kubernetes clusters. creationTimestamp: "2026-08-04T10:21:37Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:ca.crt: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} manager: kube-controller-manager operation: Update time: "2026-08-04T10:22:47Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4439" uid: a9cf8321-7fee-4b2b-a394-ab8ca1c470bb - apiVersion: v1 data: daemon-config.json: | { "cniVersion": "0.3.1", "chrootDir": "/hostroot", "logToStderr": true, "logLevel": "verbose", "binDir": "/var/lib/cni/bin", "perNodeCertificate": { "enabled": true, "bootstrapKubeconfig": "/var/lib/kubelet/kubeconfig", "certDir": "/etc/cni/multus/certs", "certDuration": "24h" }, "cniConfigDir": "/host/etc/cni/net.d", "multusConfigFile": "auto", "multusAutoconfigDir": "/host/run/multus/cni/net.d", "namespaceIsolation": true, "globalNamespaces": "default,openshift-multus,openshift-sriov-network-operator,openshift-cnv", "readinessindicatorfile": "/host/run/multus/cni/net.d/10-ovn-kubernetes.conf", "daemonSocketDir": "/run/multus/socket", "socketDir": "/host/run/multus/socket", "auxiliaryCNIChainName": "vendor-cni-chain" } kind: ConfigMap metadata: creationTimestamp: "2026-08-04T10:21:40Z" labels: app: multus tier: node managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:daemon-config.json: {} f:metadata: f:labels: f:app: {} f:tier: {} f:ownerReferences: k:{"uid":"b329bf72-4fd8-41ad-9538-7bac896c8b99"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-04T10:21:40Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b329bf72-4fd8-41ad-9538-7bac896c8b99 resourceVersion: "2366" uid: 826711ee-70fa-4e09-b760-e6806e1805d1 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIID0Pi/Vz0VDswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTgzOTMwMzAe Fw0yNjA4MDQxMDI4MjJaFw0yODEwMDIxMDI4MjNaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODU4MzkzMDMwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsb7GVrcXaPDnUJmX57/louq3TOo8FzfXO JG4sGy/KCe2+8KW8imYzJ5dAsN8c9Bl7D+ZFiodiPDVVmK6WjZM8lw8Y8QSgoC8/ xD7UHK9l3QaKX8JLifCElcVCCIPVWK5lKK3OIqwdTl3iU4ffw5mpWyPTFEJqCiR4 hxyoGp2qn1hWlR3MD+T1sPZiQPkKIoiNVo1ToPjQ9RwTLknhpA4CutghFJ7ayLvh dOthq4z2BnvBi6tSX9hOcotM643FmXRmElZUv4wCXy9Dd4hytDGMl41vxvu7fbX/ mogQ6dXyOQsDCS0UGShYtQniV7oKIUbmXT+yIhPG1FlWr3PPYSx/AgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQP2ScF +U8E9Nh/AoJqlNkeDO1LmDAfBgNVHSMEGDAWgBQP2ScF+U8E9Nh/AoJqlNkeDO1L mDANBgkqhkiG9w0BAQsFAAOCAQEAndWa0kF3w6LdZiJQie8klQrK3K/vne3lXHWR OZxBa93R3i5vn4/BrVXEYAH5bTUv2fAwis1Sb++QUt1wWCitVbXxIfj12Rk0bjNP oXU1GrM887JvId5iqmMC+ZH8794+CggQbjDVm3LOugC+OhSwTlDRyWluO/3VrznM k3NrHfD7kDyTOb1KhhU4keNKiaONhwLACuZYM6dgZ6+rElKcoJ/1Kc2L8g4vqLME CXh96jAxCloby53aofuy4a2wDogrRTzU4RyQ6f78zlNzGRJYFViHf4VqbjDZ3YdW CHFaaUxV648DE35wREKjBdpS4DwSUn7LqtncgY7BEpE6FfHQJg== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-08-04T10:32:49Z" labels: opendatahub.io/managed: "true" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:cabundle.crt: {} f:metadata: f:labels: .: {} f:opendatahub.io/managed: {} manager: manager operation: Update time: "2026-08-04T10:32:49Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14678" uid: bedff0d7-ef0e-4728-a2d2-2ca92742d9fc - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIID0Pi/Vz0VDswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTgzOTMwMzAe Fw0yNjA4MDQxMDI4MjJaFw0yODEwMDIxMDI4MjNaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODU4MzkzMDMwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsb7GVrcXaPDnUJmX57/louq3TOo8FzfXO JG4sGy/KCe2+8KW8imYzJ5dAsN8c9Bl7D+ZFiodiPDVVmK6WjZM8lw8Y8QSgoC8/ xD7UHK9l3QaKX8JLifCElcVCCIPVWK5lKK3OIqwdTl3iU4ffw5mpWyPTFEJqCiR4 hxyoGp2qn1hWlR3MD+T1sPZiQPkKIoiNVo1ToPjQ9RwTLknhpA4CutghFJ7ayLvh dOthq4z2BnvBi6tSX9hOcotM643FmXRmElZUv4wCXy9Dd4hytDGMl41vxvu7fbX/ mogQ6dXyOQsDCS0UGShYtQniV7oKIUbmXT+yIhPG1FlWr3PPYSx/AgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQP2ScF +U8E9Nh/AoJqlNkeDO1LmDAfBgNVHSMEGDAWgBQP2ScF+U8E9Nh/AoJqlNkeDO1L mDANBgkqhkiG9w0BAQsFAAOCAQEAndWa0kF3w6LdZiJQie8klQrK3K/vne3lXHWR OZxBa93R3i5vn4/BrVXEYAH5bTUv2fAwis1Sb++QUt1wWCitVbXxIfj12Rk0bjNP oXU1GrM887JvId5iqmMC+ZH8794+CggQbjDVm3LOugC+OhSwTlDRyWluO/3VrznM k3NrHfD7kDyTOb1KhhU4keNKiaONhwLACuZYM6dgZ6+rElKcoJ/1Kc2L8g4vqLME CXh96jAxCloby53aofuy4a2wDogrRTzU4RyQ6f78zlNzGRJYFViHf4VqbjDZ3YdW CHFaaUxV648DE35wREKjBdpS4DwSUn7LqtncgY7BEpE6FfHQJg== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-08-04T10:21:37Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: {} f:metadata: f:annotations: .: {} f:service.beta.openshift.io/inject-cabundle: {} manager: kube-controller-manager operation: Update time: "2026-08-04T10:21:37Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-08-04T10:28:37Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8247" uid: 6642829c-b544-4a6e-ad51-37fd2f47d295 - apiVersion: v1 data: whereabouts.conf: | { "datastore": "kubernetes", "kubernetes": { "kubeconfig": "/etc/kubernetes/cni/net.d/whereabouts.d/whereabouts.kubeconfig" }, "reconciler_cron_expression": "30 4 * * *", "log_level": "verbose", "configuration_path": "/etc/kubernetes/cni/net.d/whereabouts.d" } kind: ConfigMap metadata: creationTimestamp: "2026-08-04T10:21:40Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"b329bf72-4fd8-41ad-9538-7bac896c8b99"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-04T10:21:40Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b329bf72-4fd8-41ad-9538-7bac896c8b99 resourceVersion: "2361" uid: dc85f969-2341-4deb-bd2a-351bdd9eadab kind: ConfigMapList metadata: resourceVersion: "78666"