Skip to content

Commit

Permalink
Adds Licenses to images (kserve#657)
Browse files Browse the repository at this point in the history
* Added additional license info for python libraries

* Added license file to images

*  Copied to correct image

* Trying changes to dockerfileS

* Removing go builds for now

* Added third_party to docker builds
  • Loading branch information
ellistarn authored Feb 5, 2020
1 parent 71ce50c commit 4901236
Show file tree
Hide file tree
Showing 14 changed files with 183 additions and 17,194 deletions.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ WORKDIR /go/src/github.com/kubeflow/kfserving
COPY cmd/ cmd/
COPY vendor/ vendor/
COPY pkg/ pkg/

# Build
RUN if [ "$(uname -m)" = "ppc64le" ]; then \
CGO_ENABLED=0 GOOS=linux GOARCH=ppc64le go build -a -o manager ./cmd/manager; \
Expand All @@ -18,5 +19,6 @@ RUN if [ "$(uname -m)" = "ppc64le" ]; then \
# Copy the controller-manager into a thin image
FROM ubuntu:latest
WORKDIR /
COPY third_party/ third_party/
COPY --from=builder /go/src/github.com/kubeflow/kfserving/manager .
ENTRYPOINT ["/manager"]
3 changes: 2 additions & 1 deletion logger.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ WORKDIR /go/src/github.com/kubeflow/kfserving
COPY pkg/ pkg/
COPY cmd/ cmd/
COPY vendor/ vendor/

# Build
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o logger ./cmd/logger

# Copy the inference-logger into a thin image
FROM alpine:latest
WORKDIR /
COPY third_party/ third_party/
COPY --from=builder /go/src/github.com/kubeflow/kfserving/logger .
ENTRYPOINT ["/logger"]
3 changes: 2 additions & 1 deletion python/alibiexplainer.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ FROM python:3.7

COPY alibiexplainer alibiexplainer
COPY kfserving kfserving

COPY third_party third_party

RUN pip install --upgrade pip && pip install -e ./kfserving
RUN git clone https://github.com/SeldonIO/alibi.git && \
cd alibi && \
Expand Down
2 changes: 2 additions & 0 deletions python/pytorch.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ RUN chmod -R a+w /workspace

COPY pytorchserver pytorchserver
COPY kfserving kfserving
COPY third_party third_party

RUN pip install --upgrade pip && pip install -e ./kfserving
RUN pip install -e ./pytorchserver
ENTRYPOINT ["python", "-m", "pytorchserver"]
2 changes: 2 additions & 0 deletions python/sklearn.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ COPY kfserving kfserving

RUN pip install --upgrade pip && pip install -e ./kfserving
RUN pip install -e ./sklearnserver
COPY third_party third_party

ENTRYPOINT ["python", "-m", "sklearnserver"]
1 change: 1 addition & 0 deletions python/storage-initializer.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ COPY ./kfserving ./kfserving
RUN pip install --upgrade pip && pip install ./kfserving

COPY ./storage-initializer /storage-initializer
COPY third_party third_party

RUN chmod +x /storage-initializer/scripts/initializer-entrypoint
RUN mkdir /work
Expand Down
File renamed without changes.
84 changes: 84 additions & 0 deletions python/third_party/license_info.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
abseil/abseil-py,https://github.com/abseil/abseil-py/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/abseil/abseil-py/master/LICENSE
SeldonIO/alibi,https://github.com/SeldonIO/alibi/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/SeldonIO/alibi/master/LICENSE
berkerpeksag/astor,https://github.com/berkerpeksag/astor/blob/master/LICENSE,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/berkerpeksag/astor/master/LICENSE
Azure/azure-sdk-for-python,https://github.com/Azure/azure-sdk-for-python/blob/master/LICENSE.txt,MIT License,https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/LICENSE.txt
Azure/azure-storage-python,https://github.com/Azure/azure-storage-python/blob/master/LICENSE.txt,MIT License,https://raw.githubusercontent.com/Azure/azure-storage-python/master/LICENSE.txt
Azure/azure-storage-python,https://github.com/Azure/azure-storage-python/blob/master/LICENSE.txt,MIT License,https://raw.githubusercontent.com/Azure/azure-storage-python/master/LICENSE.txt
tkem/cachetools,https://github.com/tkem/cachetools/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/tkem/cachetools/master/LICENSE
explosion/catalogue,https://github.com/explosion/catalogue/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/explosion/catalogue/master/LICENSE
chardet/chardet,https://github.com/chardet/chardet/blob/master/LICENSE,GNU Lesser General Public License v2.1,https://raw.githubusercontent.com/chardet/chardet/master/LICENSE
jaraco/configparser,https://github.com/jaraco/configparser/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/jaraco/configparser/master/LICENSE
explosion/cymem,https://github.com/explosion/cymem/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/explosion/cymem/master/LICENSE
micheles/decorator,https://github.com/micheles/decorator/blob/master/LICENSE.txt,BSD 2-Clause "Simplified" License,https://raw.githubusercontent.com/micheles/decorator/master/LICENSE.txt
serge-sans-paille/gast,https://github.com/serge-sans-paille/gast/blob/master/LICENSE,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/serge-sans-paille/gast/master/LICENSE
GoogleCloudPlatform/google-cloud-python,https://github.com/googleapis/google-cloud-python/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/googleapis/google-cloud-python/master/LICENSE
googleapis/google-auth-library-python,https://github.com/googleapis/google-auth-library-python/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/googleapis/google-auth-library-python/master/LICENSE
GoogleCloudPlatform/google-cloud-python,https://github.com/googleapis/google-cloud-python/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/googleapis/google-cloud-python/master/LICENSE
GoogleCloudPlatform/google-cloud-python,https://github.com/googleapis/google-cloud-python/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/googleapis/google-cloud-python/master/LICENSE
GoogleCloudPlatform/google-resumable-media-python,https://github.com/googleapis/google-resumable-media-python/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/googleapis/google-resumable-media-python/master/LICENSE
googleapis/googleapis,https://github.com/googleapis/googleapis/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/googleapis/googleapis/master/LICENSE
kubernetes-client/python,https://github.com/kubernetes-client/python/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/kubernetes-client/python/master/LICENSE
minio/minio-py,https://github.com/minio/minio-py/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/minio/minio-py/master/LICENSE
explosion/murmurhash,https://github.com/explosion/murmurhash/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/explosion/murmurhash/master/LICENSE
numpy/numpy,https://github.com/numpy/numpy/blob/master/LICENSE.txt,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/numpy/numpy/master/LICENSE.txt
oauthlib/oauthlib,https://github.com/oauthlib/oauthlib/blob/master/LICENSE,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/oauthlib/oauthlib/master/LICENSE
dgasmith/opt_einsum,https://github.com/dgasmith/opt_einsum/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/dgasmith/opt_einsum/master/LICENSE
micheles/plac,https://github.com/micheles/plac/blob/master/LICENSE.txt,BSD 2-Clause "Simplified" License,https://raw.githubusercontent.com/micheles/plac/master/LICENSE.txt
explosion/preshed,https://github.com/explosion/preshed/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/explosion/preshed/master/LICENSE
etingof/pyasn1,https://github.com/etingof/pyasn1/blob/master/LICENSE.rst,BSD 2-Clause "Simplified" License,https://raw.githubusercontent.com/etingof/pyasn1/master/LICENSE.rst
etingof/pyasn1-modules,https://github.com/etingof/pyasn1-modules/blob/master/LICENSE.txt,BSD 2-Clause "Simplified" License,https://raw.githubusercontent.com/etingof/pyasn1-modules/master/LICENSE.txt
jpadilla/pyjwt,https://github.com/jpadilla/pyjwt/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/jpadilla/pyjwt/master/LICENSE
pyparsing/pyparsing,https://github.com/pyparsing/pyparsing/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/pyparsing/pyparsing/master/LICENSE
PyWavelets/pywt,https://github.com/PyWavelets/pywt/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/PyWavelets/pywt/master/LICENSE
yaml/pyyaml,https://github.com/yaml/pyyaml/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/yaml/pyyaml/master/LICENSE
requests/requests-oauthlib,https://github.com/requests/requests-oauthlib/blob/master/LICENSE,ISC License,https://raw.githubusercontent.com/requests/requests-oauthlib/master/LICENSE
scipy/scipy,https://github.com/scipy/scipy/blob/master/LICENSE.txt,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/scipy/scipy/master/LICENSE.txt
benjaminp/six,https://github.com/benjaminp/six/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/benjaminp/six/master/LICENSE
facelessuser/soupsieve,https://github.com/facelessuser/soupsieve/blob/master/LICENSE.md,MIT License,https://raw.githubusercontent.com/facelessuser/soupsieve/master/LICENSE.md
ambv/black,https://github.com/psf/black/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/psf/black/master/LICENSE
AleksTk/table-logger,https://github.com/AleksTk/table-logger/blob/master/LICENSE,GNU General Public License v2.0,https://raw.githubusercontent.com/AleksTk/table-logger/master/LICENSE
tensorflow/tensorboard,https://github.com/tensorflow/tensorboard/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/tensorflow/tensorboard/master/LICENSE
explosion/thinc,https://github.com/explosion/thinc/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/explosion/thinc/master/LICENSE
urllib3/urllib3,https://github.com/urllib3/urllib3/blob/master/LICENSE.txt,MIT License,https://raw.githubusercontent.com/urllib3/urllib3/master/LICENSE.txt
ambv/black,https://github.com/psf/black/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/psf/black/master/LICENSE
websocket-client/websocket-client,https://github.com/websocket-client/websocket-client/blob/master/LICENSE,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/websocket-client/websocket-client/master/LICENSE
pallets/werkzeug,https://github.com/pallets/werkzeug/blob/master/LICENSE.rst,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/pallets/werkzeug/master/LICENSE.rst
GrahamDumpleton/wrapt,https://github.com/GrahamDumpleton/wrapt/blob/develop/LICENSE,BSD 2-Clause "Simplified" License,https://raw.githubusercontent.com/GrahamDumpleton/wrapt/develop/LICENSE
jaraco/zipp,https://github.com/jaraco/zipp/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/jaraco/zipp/master/LICENSE
cffi/cffi,https://github.com/cffi/cffi/blob/master/COPYRIGHT,MIT License,https://raw.githubusercontent.com/cffi/cffi/master/COPYRIGHT
google/pasta,https://github.com/google/pasta/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/google/pasta/master/LICENSE
grpc/grpc,https://github.com/grpc/grpc/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/grpc/grpc/master/LICENSE
h5py/h5py,https://github.com/h5py/h5py/blob/master/LICENSE,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/h5py/h5py/master/LICENSE
imageio/imageio,https://github.com/imageio/imageio/blob/master/LICENSE,BSD 2-Clause "Simplified" License,https://raw.githubusercontent.com/imageio/imageio/master/LICENSE
joblib/joblib,https://github.com/joblib/joblib/blob/master/LICENSE.txt,BSD 3-Clause "New" or "Revised" License,https://raw.githubusercontent.com/joblib/joblib/master/LICENSE.txt
stub42/pytz,https://github.com/stub42/pytz/blob/master/LICENSE.txt,MIT License,https://raw.githubusercontent.com/stub42/pytz/master/LICENSE.txt
explosion/srsly,https://github.com/explosion/srsly/blob/master/LICENSE,MIT License,https://raw.githubusercontent.com/explosion/srsly/master/LICENSE
tensorflow/tensorflow,https://github.com/tensorflow/tensorflow/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/tensorflow/tensorflow/master/LICENSE
tensorflow/estimator,https://github.com/tensorflow/estimator/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/tensorflow/estimator/master/LICENSE
hfeeki/termcolor,https://github.com/hfeeki/termcolor/blob/master/COPYING.txt,MIT License,https://raw.githubusercontent.com/hfeeki/termcolor/master/COPYING.txt
tornadoweb/tornado,https://github.com/tornadoweb/tornado/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/tornadoweb/tornado/master/LICENSE
AzureAD/azure-activedirectory-library-for-python,https://github.com/AzureAD/azure-activedirectory-library-for-python/blob/dev/LICENSE,MIT,https://raw.githubusercontent.com/AzureAD/azure-activedirectory-library-for-python/dev/LICENSE
ThomasWaldmann/argparse,https://github.com/ThomasWaldmann/argparse/blob/master/LICENSE.txt,(c) 2006-2009 Steven J. Bethard <[email protected]>.,https://raw.githubusercontent.com/ThomasWaldmann/argparse/master/LICENSE.txt
explosion/cython-blis,https://github.com/explosion/cython-blis/blob/master/LICENSE,The University of Texas at Austin,https://raw.githubusercontent.com/explosion/cython-blis/master/LICENSE
pyca/cryptography,https://github.com/pyca/cryptography/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/pyca/cryptography/master/LICENSE
kjd/idna,https://github.com/kjd/idna/blob/master/LICENSE.rst,Copyright (c) 2013-2018 Kim Davies,https://raw.githubusercontent.com/kjd/idna/master/LICENSE.rst
keras-team/keras-applications,https://github.com/keras-team/keras-applications/blob/master/LICENSE,MIT,https://raw.githubusercontent.com/keras-team/keras-applications/master/LICENSE
keras-team/keras-preprocessing,https://github.com/keras-team/keras-preprocessing/blob/master/LICENSE,MIT,https://raw.githubusercontent.com/keras-team/keras-preprocessing/master/LICENSE
nucleic/kiwi,https://github.com/nucleic/kiwi/blob/master/LICENSE,Revised BSD,https://raw.githubusercontent.com/nucleic/kiwi/master/LICENSE
networkx/networkx,https://github.com/networkx/networkx/blob/master/LICENSE.txt,BSD 3-Clause License,https://raw.githubusercontent.com/networkx/networkx/master/LICENSE.txt
pandas-dev/pandas,https://github.com/pandas-dev/pandas/blob/master/LICENSE,BSD 3-Clause License,https://raw.githubusercontent.com/pandas-dev/pandas/master/LICENSE
eliben/pycparser,https://github.com/eliben/pycparser/blob/master/LICENSE,Copyright (c) 2008-2017 Eli Bendersky,https://raw.githubusercontent.com/eliben/pycparser/master/LICENSE
scikit-image/scikit-image,https://github.com/scikit-image/scikit-image/blob/master/LICENSE.txt,Copyright (C) 2019 the scikit-image team,https://raw.githubusercontent.com/scikit-image/scikit-image/master/LICENSE.txt
scikit-learn/scikit-learn,https://github.com/scikit-learn/scikit-learn/blob/master/COPYING,Copyright (c) 2007–2019 The scikit-learn developers.,https://raw.githubusercontent.com/scikit-learn/scikit-learn/master/COPYING
tqdm/tqdm,https://github.com/tqdm/tqdm/blob/master/LICENCE,MIT,https://raw.githubusercontent.com/tqdm/tqdm/master/LICENCE
pypa/wheel,https://github.com/pypa/wheel/blob/master/LICENSE.txt,MIT,https://raw.githubusercontent.com/pypa/wheel/master/LICENSE.txt
waylan/beautifulsoup,https://github.com/waylan/beautifulsoup/blob/master/COPYING.txt,MIT,https://raw.githubusercontent.com/waylan/beautifulsoup/master/COPYING.txt
certifi/python-certifi,https://github.com/certifi/python-certifi/blob/master/LICENSE,MPL,https://raw.githubusercontent.com/certifi/python-certifi/master/LICENSE
uqfoundation/dill,https://github.com/uqfoundation/dill/blob/master/LICENSE,Copyright (c) 2016-2020 The Uncertainty Quantification Foundation.,https://raw.githubusercontent.com/uqfoundation/dill/master/LICENSE
Python-Markdown/markdown,https://github.com/Python-Markdown/markdown/blob/master/LICENSE.md,Copyright 2007 2008 The Python Markdown Project,https://raw.githubusercontent.com/Python-Markdown/markdown/master/LICENSE.md
python-pillow/Pillow,https://github.com/python-pillow/Pillow/blob/master/LICENSE,Copyright © 2010-2020 by Alex Clark and contributors,https://raw.githubusercontent.com/python-pillow/Pillow/master/LICENSE
protocolbuffers/protobuf,https://github.com/protocolbuffers/protobuf/blob/master/LICENSE,Copyright 2008 Google Inc. All rights reserved.,https://raw.githubusercontent.com/protocolbuffers/protobuf/master/LICENSE
dateutil/dateutil,https://github.com/dateutil/dateutil/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/dateutil/dateutil/master/LICENSE
psf/requests,https://github.com/psf/requests/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/psf/requests/master/LICENSE
sybrenstuvel/python-rsa,https://github.com/sybrenstuvel/python-rsa/blob/master/LICENSE,Apache License 2.0,https://raw.githubusercontent.com/sybrenstuvel/python-rsa/master/LICENSE
matplotlib/matplotlib,https://github.com/matplotlib/matplotlib/blob/master/LICENSE/LICENSE,Copyright (c) 2012- Matplotlib Development Team,https://raw.githubusercontent.com/matplotlib/matplotlib/master/LICENSE/LICENSE
85 changes: 85 additions & 0 deletions python/third_party/repo.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
abseil/abseil-py
AzureAD/azure-activedirectory-library-for-python
SeldonIO/alibi
ThomasWaldmann/argparse
berkerpeksag/astor
Azure/azure-sdk-for-python
Azure/azure-storage-python
Azure/azure-storage-python
explosion/cython-blis
tkem/cachetools
explosion/catalogue
chardet/chardet
jaraco/configparser
pyca/cryptography
matplotlib/cycler
explosion/cymem
micheles/decorator
serge-sans-paille/gast
GoogleCloudPlatform/google-cloud-python
googleapis/google-auth-library-python
GoogleCloudPlatform/google-cloud-python
GoogleCloudPlatform/google-cloud-python
GoogleCloudPlatform/google-resumable-media-python
googleapis/googleapis
kjd/idna
keras-team/keras-applications
keras-team/keras-preprocessing
nucleic/kiwi
kubernetes-client/python
matplotlib/matplotlib
minio/minio-py
explosion/murmurhash
networkx/networkx
numpy/numpy
oauthlib/oauthlib
dgasmith/opt_einsum
pandas-dev/pandas
micheles/plac
explosion/preshed
etingof/pyasn1
etingof/pyasn1-modules
eliben/pycparser
jpadilla/pyjwt
pyparsing/pyparsing
PyWavelets/pywt
yaml/pyyaml
requests/requests-oauthlib
scikit-image/scikit-image
scikit-learn/scikit-learn
scipy/scipy
benjaminp/six
facelessuser/soupsieve
ambv/black
AleksTk/table-logger
tensorflow/tensorboard
explosion/thinc
tqdm/tqdm
urllib3/urllib3
ambv/black
websocket-client/websocket-client
pallets/werkzeug
pypa/wheel
GrahamDumpleton/wrapt
jaraco/zipp
waylan/beautifulsoup
certifi/python-certifi
cffi/cffi
uqfoundation/dill
google/pasta
grpc/grpc
h5py/h5py
imageio/imageio
joblib/joblib
Python-Markdown/markdown
python-pillow/Pillow
protocolbuffers/protobuf
dateutil/dateutil
stub42/pytz
psf/requests
sybrenstuvel/python-rsa
explosion/srsly
tensorflow/tensorflow
tensorflow/estimator
hfeeki/termcolor
tornadoweb/tornado
1 change: 1 addition & 0 deletions python/xgb.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM python:3.7-slim
RUN apt-get update && apt-get install libgomp1

COPY . .
COPY third_party third_party

# pip 20.x breaks xgboost wheels https://github.com/dmlc/xgboost/issues/5221
RUN pip install pip==19.3.1 && pip install -e ./kfserving
Expand Down
1 change: 1 addition & 0 deletions test/scripts/build-kfserving.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ mkdir -p ${GO_DIR}
cp -r cmd ${GO_DIR}/cmd
cp -r pkg ${GO_DIR}/pkg
cp -r vendor ${GO_DIR}/vendor
cp -r third_party ${GO_DIR}/third_party
cp Dockerfile ${GO_DIR}

cd ${GO_DIR}
Expand Down
1 change: 1 addition & 0 deletions test/scripts/build-logger.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ mkdir -p ${GO_DIR}
cp -r cmd ${GO_DIR}/cmd
cp -r pkg ${GO_DIR}/pkg
cp -r vendor ${GO_DIR}/vendor
cp -r third_party ${GO_DIR}/third_party
cp logger.Dockerfile ${GO_DIR}/Dockerfile

cd ${GO_DIR}
Expand Down
Loading

0 comments on commit 4901236

Please sign in to comment.