# Powolna kompilacja na Celeronie D 3000Mhz

## sebad

WItam

Postawilem gentoo na maszynce z Celeronem D 3000Mhz i 1,5GB RAM. Wszystko dziala super poza tym, ze wszystko kompiluje sie bardzo powoli. Wiem ze to juz leciwy procek, ale moim zdaniem kompilacja kernela ktora trwa prawie 30 minut to troche za dlugo, natomiast kdebase-3.5.10 jakies 5 godzin. W czasie kompilacji top wyswietla mi dwa procesy cc1, przy czym jeden obciaza procesor w 38% a drugi w 7% albo jeden w 20% i drugi w 20%. Tak jakby wykorzystywana byla polowa mocy procesora.

Przy kompilacji ncurses wyswietlila mi sie taka wiadomosc:

```
USE=profile and -fomit-frame-pointer make no sense
```

Nie wiem co to oznacza, ale moze to jest przyczyna.

Moje make.conf

```
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

CHOST="i686-pc-linux-gnu"

MAKEOPTS="-j2"

USE="-gnome -gtk X alsa apache2 bzip2 dbus dri dvd encode ffmpeg flac hal javascript jpeg kde kdeenablefinal lame mp3 mplayer opengl png php python qt3 qt3support sse sse2 usb v4l v4l2 wifi"

LANGUAGE="48"

LINGUAS="pl"

DISTDIR="/usr/p_distfiles"

VIDEO_CARDS="nvidia"

source /usr/local/portage/layman/make.conf

```

----------

## SlashBeast

daj -j4 i sprawdz czy bedzie jesc cala moc.

----------

## soban_

Kiedys na podobnym procku stawialem Gentoo (chyba 2,4 GHz Celeron), zrezygnowalem i postawilem Archa - wlasnie kernel tez okolo ~1h sie kompilowal. Chociaz jesli to cos moze pomoc, sprawdz np htopem czy uzywa calej mocy procesora (podczas kompilacji kernela). I tak jak @SlashBeast napisal sprobuj np:

```
make -j5 && make modules_install -j5
```

----------

## lsdudi

 *sebad wrote:*   

> WItam
> 
> Przy kompilacji ncurses wyswietlila mi sie taka wiadomosc:
> 
> ```
> ...

 

dla pakietu sys-libs/ncurses masz aktywną flagę profile  jednak  w CFLAGS masz "-fomit-frame-pointer" a tą kombinacje kompilator uważa za bezsensowną

tak btw podaj  

```
 emerge --info
```

```
cat /proc/cpuinfo
```

----------

## sebad

```
emerge --info
```

```

Portage 2.1.6.13 (default/linux/x86/10.0, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 i686)

=================================================================

System uname: Linux-2.6.31-gentoo-r6-i686-Intel-R-_Celeron-R-_D_CPU_3.06GHz-with-gentoo-1.12.13

Timestamp of tree: Mon, 11 Jan 2010 17:00:01 +0000

app-shells/bash:     4.0_p35

dev-lang/python:     2.6.4

sys-apps/baselayout: 1.12.13

sys-apps/sandbox:    1.6-r2

sys-devel/autoconf:  2.63-r1

sys-devel/automake:  1.9.6-r2, 1.10.2

sys-devel/binutils:  2.18-r3

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.27-r2

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

DISTDIR="/usr/p_distfiles"

FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LANG="pl_PL"

LC_ALL="pl_PL.UTF-8"

LDFLAGS="-Wl,-O1"

LINGUAS="pl"

MAKEOPTS="-j5"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage/layman/kde-sunset"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X acl alsa apache2 berkdb bzip2 cli cracklib crypt cups cxx dbus dri dvd encode ffmpeg flac fortran gdbm gpm hal iconv ipv6 javascript jpeg kde lame modules mp3 mplayer mudflap ncurses nls nptl nptlonly opengl openmp pam pcre perl php png pppd python qt3 qt3support readline reflection session spl sse sse2 ssl sysfs tcpd unicode usb v4l v4l2 wifi x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="pl" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

```
cat /proc/cpuinfo
```

```
processor       : 0

vendor_id       : GenuineIntel

cpu family      : 15

model           : 6

model name      : Intel(R) Celeron(R) D CPU 3.06GHz

stepping        : 5

cpu MHz         : 3081.263

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 6

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr pdcm lahf_lm

bogomips        : 6162.52

clflush size    : 64

power management:

```

----------

## lsdudi

To ten proc nie jest 2 corowy?

----------

## skazi

Celeron D to dość stary procek i nigdy nie posiadał dwóch rdzeni.

----------

## lsdudi

 *skazi wrote:*   

> Celeron D to dość stary procek i nigdy nie posiadał dwóch rdzeni.

 

być może zmyliła mnie literka D w nazwie w pentiumach oznaczało to 2xP4... ech... jefani marketingowcy ;/

@sebad

Rada: to może nawet śmigać ale trzeba bardzo rozsądnie dobierać flagi

Oraz żadnych wyskoków z: 

```
emerge kde-meta
```

tak naprawdę musisz powycinać co się da :], aby bedzie hulać miałem identycznego proca tylko 2GHz a teraz jadę w pracy na 1.6 athlonie

----------

## ufoman

D w nazwach Prescottów oznacza Desktop. Też się na to raz nadziałem :/

----------

## lazy_bum

 *sebad wrote:*   

> natomiast kdebase-3.5.10 jakies 5 godzin.

 

Masz coś konkretnie uwalone. Przy tym czasie, jeżeli nie masz /var/tmp/portage w tmpfs, obstawiałbym skopane ustawienia dysku (DMA) lub jajka.

----------

## dylon

 *lazy_bum wrote:*   

>  *sebad wrote:*   natomiast kdebase-3.5.10 jakies 5 godzin. 
> 
> Masz coś konkretnie uwalone. Przy tym czasie, jeżeli nie masz /var/tmp/portage w tmpfs, obstawiałbym skopane ustawienia dysku (DMA) lub jajka.

 

To nie musi byc calkiem zgodne z prawda  :Razz: 

Najwieksza bolaczka tego procka jest... tragiczna ilosc cache-u.

Ja posiadam Pentium D 2,8GHz (z obsluga HT) +2MB cache i szybciej mi sie kompiluja programy. kernel jakies 20minut a kdelibs ze 2h

----------

## joi_

problem jest prawdopodobnie w ustawieniach dysku, ale nie zaszkodzi włączyć SMP i SMT w kernelu, bo z tego co widzę we flags ten procek obsługuje hyperthreading...

----------

## lazy_bum

@dylon

Bez przesady, o ile pamiętam, to na moim Pentium II 400 MHz, na którym miałem KDE3, to trwało w okolicach 5-7h… (-;

----------

## soban_

 *lazy_bum wrote:*   

> @dylon
> 
> Bez przesady, o ile pamiętam, to na moim Pentium II 400 MHz, na którym miałem KDE3, to trwało w okolicach 5-7h… (-;

 

cale kde-meta-3.5? Jestem naprawde pod wrazeniem... mi na celeronie 2.4Ghz jajko kompilowalo ~1h. Ktos moze orientuje sie, czy sa jakies statystyki prowadzone, ile srednio dana paczka przy konkretnym procesorze moze toleranycjnie sie kompilowac? (nie mam na mysli genlop'a :-)) - tylko wybranie konkerntego procka i sprawdzenie ile moze to potrwac... (oczywiscie przy wszystkich flagach, bo watpie zeby cos pokazywalo statystyki - wykluczajac poszczegolne flagi) oraz czy sa w ogole prowadzone jakies statystyki.

----------

## lsdudi

kompilacja jądra zalezy od 2 czynników

1) co wybierzesz

2)z jakim -j puscisz

na athlon 2.0moja kombinacja trwała jakies 15-20 mniut

co do samegosoftu z portage to także zalezy od flag

```

qlop -tH kdelibs

kdelibs: 1 hour, 57 minutes, 12 seconds for 31 merges
```

dla

```
cat /proc/cpuinfo

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 6

model           : 8

model name      : AMD Athlon(tm) XP 2400+

stepping        : 1

cpu MHz         : 2000.360

cache size      : 256 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow

bogomips        : 4002.41

clflush size    : 32

cache_alignment : 32

address sizes   : 34 bits physical, 32 bits virtual

power management: ts
```

```
eix kdelibs

[I] kde-base/kdelibs

     Available versions:

        (4.3)   4.3.3-r1!t (~)4.3.4!t (~)4.3.5!t

        (4.4)   (~)4.4.0!t

        {3dnow acl alsa altivec aqua bindist +bzip2 debug doc fam +handbook jpeg2k kdeenablefinal kdeprefix kerberos lzma mmx nls openexr opengl policykit (+)semantic-desktop spell sse sse2 ssl test zeroconf}

     Installed versions:  4.4.0(4.4)!t(19:30:35 11.02.2010)(3dnow acl alsa bzip2 jpeg2k lzma mmx nls openexr opengl spell sse ssl -altivec -aqua -bindist -debug -doc -fam -handbook -kdeenablefinal -kdeprefix -kerberos -policykit -semantic-desktop -sse2 -test -zeroconf)

     Homepage:            http://www.kde.org/

     Description:         KDE libraries needed by all KDE programs.
```

----------

## dylon

Moze sie komus przyda.

Pentium D 2,8GHz:

```

>root@dylon<:/root>)# cat /proc/cpuinfo 

processor       : 0                     

vendor_id       : GenuineIntel          

cpu family      : 15                    

model           : 6                     

model name      : Intel(R) Pentium(R) D CPU 2.80GHz

stepping        : 4                                

cpu MHz         : 2793.083                         

cache size      : 2048 KB                          

physical id     : 0

siblings        : 2

core id         : 0

cpu cores       : 2

apicid          : 0

initial apicid  : 0

fpu             : yes

fpu_exception   : yes

cpuid level     : 6

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl est cid cx16 xtpr pdcm lahf_lm

bogomips        : 5588.92

clflush size    : 64

cache_alignment : 128

address sizes   : 36 bits physical, 48 bits virtual

power management:

processor       : 1

vendor_id       : GenuineIntel

cpu family      : 15

model           : 6

model name      : Intel(R) Pentium(R) D CPU 2.80GHz

stepping        : 4

cpu MHz         : 2793.083

cache size      : 2048 KB

physical id     : 0

siblings        : 2

core id         : 1

cpu cores       : 2

apicid          : 1

initial apicid  : 1

fpu             : yes

fpu_exception   : yes

cpuid level     : 6

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl est cid cx16 xtpr pdcm lahf_lm

bogomips        : 5587.43

clflush size    : 64

cache_alignment : 128

address sizes   : 36 bits physical, 48 bits virtual

power management:

```

```
>root@dylon<:/root>)# qlop -tH kdelibs

kdelibs: 50 minutes, 24 seconds for 3 merges

```

```
>root@dylon<:/root>)# emerge --info 

Portage 2.2_rc62 (default/linux/amd64/10.0/desktop, gcc-4.4.3, glibc-2.11-r1, 2.6.31-gentoo-r4-dylon x86_64)

=================================================================                                           

System uname: Linux-2.6.31-gentoo-r4-dylon-x86_64-Intel-R-_Pentium-R-_D_CPU_2.80GHz-with-gentoo-2.0.1       

Timestamp of tree: Sun, 14 Feb 2010 13:15:02 +0000                                                          

ccache version 2.4 [enabled]                                                                                

app-shells/bash:     4.1_p2                                                                                 

dev-java/java-config: 2.1.10                                                                                

dev-lang/python:     2.6.4-r1, 3.1.1-r1                                                                     

dev-util/ccache:     2.4-r8                                                                                 

dev-util/cmake:      2.8.0-r2                                                                               

sys-apps/baselayout: 2.0.1                                                                                  

sys-apps/openrc:     0.6.0-r1                                                                               

sys-apps/sandbox:    2.2                                                                                    

sys-devel/autoconf:  2.13, 2.65                                                                             

sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.3, 1.11.1                                           

sys-devel/binutils:  2.20

sys-devel/gcc:       4.3.4, 4.4.3

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.32

ACCEPT_KEYWORDS="amd64 ~amd64"

ACCEPT_LICENSE="*"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests ccache confcache distlocks fixpackages metadata-transfer news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org"

LANG="pl_PL.UTF-8"

LC_ALL="pl_PL.UTF-8"

LDFLAGS="-Wl,-O1"

LINGUAS="pl"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_EXTRA_OPTS="--progress"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage/local"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X a52 aac acl acpi aiglx alsa amd64 apache2 ape asf aspell bash-completion berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr eds emboss encode evo extras fam ffmpeg firefox flac fortran gdbm gif gnome gpm gstreamer gtk hal iconv ieee1394 ipv6 java jpeg kde kde4 ldap libnotify lm_sensors mad matroska mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib musepack mysql mysqli ncurses nls nptl nptl_only nptlonly nsplugin ntfs nvidia ogg opengl openmp pam pcre pdf perl phonon png posix ppds pppd python qt qt3 qt3support qt4 quicktime readline reflection sasl sdl session slang smp spell spl sse sse2 ssl startup-notification svg sysfs tcpd theora threads thunar tiff truetype unicode usb v4l v4l2 vcd vdpau vorbis x264 xml xorg xulrunner xv xvid zlib" ALSA_CARDS="intel8x0 emu10k1 emu10k1x hda-intel hdsp hdspm" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse kbd" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="pl" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia nv"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS

```

----------

## soban_

 *lsdudi wrote:*   

> kompilacja jądra zalezy od 2 czynników
> 
> 1) co wybierzesz
> 
> 2)z jakim -j puscisz
> ...

 

1) emerge sys-kernel/gentoo-sources (standardowy konfig - jaki powstaje + to co laduje lsmod z livecd-gentoo [dyski] i jakies tam fuse + cos tam moze jeszcze - dawno bylo wiec dokladnie nie powiem - ale raczej staralem sie nie robic "giganta", tzn to co jest potrzebne do podstawowego dzialania systemu np. karta wifi)

2) https://forums.gentoo.org/viewtopic-p-6128387.html#6128387 -j5, ale ze to bylo dawno to moge sie mylic czy zapuscilem to w 5 watkach, ale i tak chyba na Twoim atlonie szybciej to trawlo.

----------

## lazy_bum

[OT]

 *soban_ wrote:*   

> cale kde-meta-3.5?

 

 *Quote:*   

>  *sebad wrote:*   natomiast kdebase-3.5.10 jakies 5 godzin. 
> 
>  *lazy_bum wrote:*   Bez przesady, o ile pamiętam, to na moim Pentium II 400 MHz, na którym miałem KDE3, to trwało w okolicach 5-7h… (-; 

 

 *soban_ wrote:*   

> Jestem naprawde pod wrazeniem... mi na celeronie 2.5Ghz jajko kompilowalo ~1h.

 

Mi na PIV 2.6Ghz z HT ~15 minut. Jak ktoś słusznie zauważył, kompilacja jajka w dużym stopniu zależy od ustawień.

 *soban_ wrote:*   

> Ktos moze orientuje sie, czy sa jakies statystyki prowadzone, ile srednio dana paczka przy konkretnym procesorze moze toleranycjnie sie kompilowac? (nie mam na mysli genlop'a :-)) - tylko wybranie konkerntego procka i sprawdzenie ile moze to potrwac... (oczywiscie przy wszystkich flagach, bo watpie zeby cos pokazywalo statystyki - wykluczajac poszczegolne flagi) oraz czy sa w ogole prowadzone jakies statystyki.

 

Kiedyś był jakiś perlowy (?!) skrypt, który pozwalał na coś podobnego. Chyba nawet działał na tyle sprytnie, że używał emerge.log, a także korzystał z bazy logów, które wrzucili użytkownicy. Ja jednak nigdy nie przykładałem specjalnej uwagi do tego czym zajmuje się mój CPU prócz kompilacji. Tym też sposobem zdarza mi się mordować procek flashem, kompilacją innych rzeczy, kopiowaniem dużej ilości danych itd. i tym sposobem fałszuję sobie wyniki. I, idąc tym tropem dalej, udostępniając własny emerge.log zaciemniałbym sytuację innym (lub nie, zależy jak oni traktują wyniki z {qen,q}lopów ;). Pomijam też fakt, że mój emerge.log zaczyna się od Celerona 2.4GHz, przechodzi przez PIV 2.6GHz HT i jest aktualnie uzupełniany z Pentium DualCore (i w przyszłości kto wie czym jeszcze).

[/OT]

@sebad

Wracając do tematu. DMA dla dysku(ów?) na pewno włączone? Podbij MAKEOPTS (np. do -j4 i zobacz efekt), jajko spróbuj kompilować nie przez make && foobar, a przez make -jX && foobar (gdzie X możesz ustawić na 2, 3 … 10 (wtedy na pewno obciążenie będzie większe niż ~20% ;)). Możesz też zamontować /var/tmp/portage w tmpfs.

----------

