Hello community,

here is the log from the commit of package autoyast2 for openSUSE:Factory 
checked in at 2014-07-27 08:25:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/autoyast2 (Old)
 and      /work/SRC/openSUSE:Factory/.autoyast2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "autoyast2"

Changes:
--------
--- /work/SRC/openSUSE:Factory/autoyast2/autoyast2.changes      2014-07-19 
11:05:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.autoyast2.new/autoyast2.changes 2014-07-27 
08:26:00.000000000 +0200
@@ -1,0 +2,47 @@
+Fri Jul 25 12:00:17 UTC 2014 - [email protected]
+
+- code de-duplication of recent bootloader autoupgrde changes
+  (bnc#885634)
+- 3.1.51
+
+-------------------------------------------------------------------
+
+Tue Jul 22 13:57:40 CEST 2014 - [email protected]
+
+- Calling bootloader configuration before evaluating package selection.
+  So the package selection can take care about the packages which
+  will be needed by the bootloader. (bnc#876161)
+- 3.1.50
+
+-------------------------------------------------------------------
+Tue Jul 22 09:10:08 UTC 2014 - [email protected]
+
+- import bootloader settings also during autoupgrade (bnc#885634)
+- 3.1.49
+
+-------------------------------------------------------------------
+Mon Jul 21 16:59:06 CEST 2014 - [email protected]
+
+- Do not clone hidden modules, not even automatically with
+  clone_system (bnc#887115)
+- Added support for autogenerated XML in format:
+  'services-manager'->'services'->'enable/disable'->'service'
+  instead of 'listentry'
+- 3.1.48
+
+-------------------------------------------------------------------
+Thu Jul 21 16:30:02 CEST 2014 - [email protected]
+
+- Set default timeout of error,warning,...popups correctly.
+  (bnc#887397)
+- 3.1.47
+
+-------------------------------------------------------------------
+Mon Jul 21 15:15:27 CEST 2014 - [email protected]
+
+- SCR agent for reading desktop file now understand comments
+  according freedesktop.org (^#[ \t])
+- Added support for "Hidden" modules (both bnc#887115)
+- 3.1.46
+
+-------------------------------------------------------------------

Old:
----
  autoyast2-3.1.45.tar.bz2

New:
----
  autoyast2-3.1.51.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ autoyast2.spec ++++++
--- /var/tmp/diff_new_pack.bSlWil/_old  2014-07-27 08:26:01.000000000 +0200
+++ /var/tmp/diff_new_pack.bSlWil/_new  2014-07-27 08:26:01.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           autoyast2
-Version:        3.1.45
+Version:        3.1.51
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ autoyast2-3.1.45.tar.bz2 -> autoyast2-3.1.51.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/package/autoyast2.changes 
new/autoyast2-3.1.51/package/autoyast2.changes
--- old/autoyast2-3.1.45/package/autoyast2.changes      2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/package/autoyast2.changes      2014-07-25 
14:10:09.000000000 +0200
@@ -1,4 +1,51 @@
 -------------------------------------------------------------------
+Fri Jul 25 12:00:17 UTC 2014 - [email protected]
+
+- code de-duplication of recent bootloader autoupgrde changes
+  (bnc#885634)
+- 3.1.51
+
+-------------------------------------------------------------------
+
+Tue Jul 22 13:57:40 CEST 2014 - [email protected]
+
+- Calling bootloader configuration before evaluating package selection.
+  So the package selection can take care about the packages which
+  will be needed by the bootloader. (bnc#876161)
+- 3.1.50
+
+-------------------------------------------------------------------
+Tue Jul 22 09:10:08 UTC 2014 - [email protected]
+
+- import bootloader settings also during autoupgrade (bnc#885634)
+- 3.1.49
+
+-------------------------------------------------------------------
+Mon Jul 21 16:59:06 CEST 2014 - [email protected]
+
+- Do not clone hidden modules, not even automatically with
+  clone_system (bnc#887115)
+- Added support for autogenerated XML in format:
+  'services-manager'->'services'->'enable/disable'->'service'
+  instead of 'listentry'
+- 3.1.48
+
+-------------------------------------------------------------------
+Thu Jul 21 16:30:02 CEST 2014 - [email protected]
+
+- Set default timeout of error,warning,...popups correctly.
+  (bnc#887397)
+- 3.1.47
+
+-------------------------------------------------------------------
+Mon Jul 21 15:15:27 CEST 2014 - [email protected]
+
+- SCR agent for reading desktop file now understand comments
+  according freedesktop.org (^#[ \t])
+- Added support for "Hidden" modules (both bnc#887115)
+- 3.1.46
+
+-------------------------------------------------------------------
 Wed Jul 16 13:49:24 CEST 2014 - [email protected]
 
 - Filter out tpmfs devices which have no partitions.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/package/autoyast2.spec 
new/autoyast2-3.1.51/package/autoyast2.spec
--- old/autoyast2-3.1.45/package/autoyast2.spec 2014-07-16 15:14:52.000000000 
+0200
+++ new/autoyast2-3.1.51/package/autoyast2.spec 2014-07-25 14:10:09.000000000 
+0200
@@ -17,7 +17,7 @@
 
 
 Name:           autoyast2
-Version:        3.1.45
+Version:        3.1.51
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/clients/clone_system.rb 
new/autoyast2-3.1.51/src/clients/clone_system.rb
--- old/autoyast2-3.1.45/src/clients/clone_system.rb    2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/clients/clone_system.rb    2014-07-25 
14:10:09.000000000 +0200
@@ -10,6 +10,9 @@
 # $Id$
 module Yast
   class CloneSystemClient < Client
+    # FIXME: unify with conftree.rb
+    ALWAYS_CLONABLE_MODULES = ["software", "partitioning", "bootloader"]
+
     def main
       Yast.import "AutoinstClone"
       Yast.import "Profile"
@@ -25,15 +28,10 @@
       @moduleList = ""
 
       Builtins.foreach(Y2ModuleConfig.ModuleMap) do |def_resource, resourceMap|
-        clonable = Ops.get_string(
-          resourceMap,
-          "X-SuSE-YaST-AutoInstClonable",
-          "false"
-        ) == "true"
-        if clonable || def_resource == "bootloader" ||
-            def_resource == "partitioning" ||
-            def_resource == "software"
-          @moduleList = Builtins.sformat("%1 %2", @moduleList, def_resource)
+        clonable = resourceMap["X-SuSE-YaST-AutoInstClonable"] == "true"
+
+        if clonable || ALWAYS_CLONABLE_MODULES.include?(def_resource)
+          @moduleList << " " << def_resource
         end
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/clients/inst_autoinit.rb 
new/autoyast2-3.1.51/src/clients/inst_autoinit.rb
--- old/autoyast2-3.1.45/src/clients/inst_autoinit.rb   2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/clients/inst_autoinit.rb   2014-07-25 
14:10:09.000000000 +0200
@@ -200,11 +200,14 @@
       Progress.NextStage
       Progress.Title(_("Initial Configuration"))
       Builtins.y2milestone("Initial Configuration")
-      tmp = Profile.current.fetch("report",{})
-      if !tmp.has_key?( "yesno_messages" )
-        tmp["yesno_messages"] = tmp.fetch("errors",{})
+      report = Profile.current["report"]
+      if report && !report.has_key?( "yesno_messages" )
+        # Set "yesno_messages", but do not reset the other settings
+        # (bnc#887397)
+        report = Report.Export # getting all values
+        report["yesno_messages"] = report.fetch("errors",{})
+        Report.Import(report) # setting all values
       end
-      Report.Import(tmp)
       AutoinstGeneral.Import(Profile.current.fetch("general",{}))
       AutoinstGeneral.SetSignatureHandling
       AutoinstGeneral.SetMultipathing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/clients/inst_autosetup.rb 
new/autoyast2-3.1.51/src/clients/inst_autosetup.rb
--- old/autoyast2-3.1.45/src/clients/inst_autosetup.rb  2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/clients/inst_autosetup.rb  2014-07-25 
14:10:09.000000000 +0200
@@ -54,8 +54,8 @@
         _("Configure General Settings "),
         _("Set up language"),
         _("Create partition plans"),
-        _("Configure Software selections"),
         _("Configure Bootloader"),
+        _("Configure Software selections"),
         _("Configure Systemd Default Target")
       ]
 
@@ -64,8 +64,8 @@
         _("Configuring general settings..."),
         _("Setting up language..."),
         _("Creating partition plans..."),
-        _("Configuring Software selections..."),
         _("Configuring Bootloader..."),
+        _("Configuring Software selections..."),
         _("Configuring Systemd Default Target...")
       ]
 
@@ -272,6 +272,19 @@
       AutoinstLVM.Write if AutoinstLVM.Init
 
 
+      # Bootloader
+      # The bootloader has to be called before software selection.
+      # So the software selection can take care about packages
+      # needed by the bootloader (bnc#876161)
+
+      return :abort if Popup.ConfirmAbort(:painless) if UI.PollInput == :abort
+      Progress.NextStage
+
+      BootCommon.getLoaderType(true)
+      return :abort unless WFM.CallFunction(
+        "bootloader_auto",
+        ["Import", Ops.get_map(Profile.current, "bootloader", {})]
+      )
 
       # Software
 
@@ -303,20 +316,6 @@
       Call.Function("deploy_image_auto", ["Write"])
 
 
-      # Bootloader
-
-      return :abort if Popup.ConfirmAbort(:painless) if UI.PollInput == :abort
-      Progress.NextStage
-
-      BootCommon.getLoaderType(true)
-      Bootloader.Import(
-        AI2Export(Ops.get_map(Profile.current, "bootloader", {}))
-      )
-      BootCommon.DetectDisks
-      Builtins.y2debug("autoyast: Proposing - fix")
-      Bootloader.Propose
-      Builtins.y2debug("autoyast: Proposing done")
-
       # SLES only
       if Builtins.haskey(Profile.current, "kdump")
         Call.Function(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/autoyast2-3.1.45/src/clients/inst_autosetup_upgrade.rb 
new/autoyast2-3.1.51/src/clients/inst_autosetup_upgrade.rb
--- old/autoyast2-3.1.45/src/clients/inst_autosetup_upgrade.rb  2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/clients/inst_autosetup_upgrade.rb  2014-07-25 
14:10:09.000000000 +0200
@@ -51,13 +51,16 @@
         _("Configure General Settings "),
         _("Execute pre-install user scripts"),
         _("Set up language"),
-        _("Configure Software selections")
+        _("Configure Software selections"),
+        _("Configure Bootloader")
       ]
 
       @progress_descriptions = [
         _("Configuring general settings..."),
         _("Executing pre-install user scripts..."),
-        _("Configuring Software selections...")
+        _("Setting up language..."),
+        _("Configuring Software selections..."),
+        _("Configuring Bootloader...")
       ]
 
       Progress.New(
@@ -379,6 +382,37 @@
         end
       end
 
+      # Bootloader
+      # FIXME: De-duplicate with inst_autosetup
+      # Bootloader import / proposal is necessary to match changes done for 
manual
+      # upgrade, when new configuration is created instead of reusing old one, 
which
+      # cannot be converted from other bootloader configuration to GRUB2 
format.
+      # Without this code, YaST sticks with previously installed bootloader 
even if
+      # it is not included in the new distro
+      #
+      # This fix was tested with AutoYaST profile as atached to bnc#885634 
(*), as well as
+      # its alternative without specifying bootloader settings, in VirtualBox 
with
+      # single disk, updating patched SLES11-SP3 to SLES12 Beta10
+      # https://bugzilla.novell.com/show_bug.cgi?id=885634#c3
+
+      return :abort if UI.PollInput == :abort && Popup.ConfirmAbort(:painless)
+      Progress.NextStage
+
+      # SCR not initialized on target prevents reading from system
+      BootCommon.getLoaderType(true)
+      return :abort unless WFM.CallFunction(
+        "bootloader_auto",
+        ["Import", Ops.get_map(Profile.current, "bootloader", {})]
+      )
+
+      # SLES only, the only way to have kdump configured immediately after 
upgrade
+      if Builtins.haskey(Profile.current, "kdump")
+        Call.Function(
+          "kdump_auto",
+          ["Import", Ops.get_map(Profile.current, "kdump", {})]
+        )
+      end
+
       # Backup
       Builtins.y2internal("Backup: %1", Ops.get(Profile.current, "backup"))
       Installation.update_backup_modified = Ops.get_boolean(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/clients/report_auto.rb 
new/autoyast2-3.1.51/src/clients/report_auto.rb
--- old/autoyast2-3.1.45/src/clients/report_auto.rb     2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/clients/report_auto.rb     2014-07-25 
14:10:09.000000000 +0200
@@ -64,6 +64,10 @@
       # return map or list
       elsif @func == "Export"
         @ret = Report.Export
+        # Set timeout for autoyast to 10 seconds (bnc#887397)
+        @ret["messages"]["timeout"] = 10 if @ret["messages"]["timeout"] <= 0
+        @ret["warnings"]["timeout"] = 10 if @ret["warnings"]["timeout"] <= 0
+        @ret["yesno_messages"]["timeout"] = 10 if 
@ret["yesno_messages"]["timeout"] <= 0
       elsif @func == "GetModified"
         @ret = Report.GetModified
       elsif @func == "SetModified"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/include/autoinstall/conftree.rb 
new/autoyast2-3.1.51/src/include/autoinstall/conftree.rb
--- old/autoyast2-3.1.45/src/include/autoinstall/conftree.rb    2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/include/autoinstall/conftree.rb    2014-07-25 
14:10:09.000000000 +0200
@@ -116,6 +116,9 @@
       Builtins.y2milestone("group_name: %1", group_name)
       itemList = []
       Builtins.foreach(Y2ModuleConfig.ModuleMap) do |k, v|
+        # bnc #887115 comment #9: Desktop file is "hidden" and should not be 
shown at all
+        next if v["Hidden"] == "true"
+
         if Ops.get_string(v, "X-SuSE-YaST-Group", "") == group_name
           desktop_file = Builtins.substring(
             Ops.get_string(v, "X-SuSE-DocTeamID", ""),
@@ -216,7 +219,7 @@
 
     # Set the group selection box to the specified YaST group.
     #
-    # @praram group_name YaST group to select.
+    # @param group_name YaST group to select.
     def setGroup(group_name)
       UI.ChangeWidget(Id(:groups), :CurrentItem, group_name)
       updateModules
@@ -238,6 +241,8 @@
       Convert.to_string(UI.QueryWidget(Id(:modules), :CurrentItem))
     end
 
+    ALWAYS_CLONABLE_MODULES = ["software", "partitioning", "bootloader"]
+
     # Updates the action button activation status. (Some modules are not
     # clonable, some are not writeable).
     #
@@ -247,18 +252,13 @@
       if Builtins.contains(AutoinstConfig.noWriteNow, selectedModule)
         UI.ChangeWidget(Id(:writeNow), :Enabled, false)
       end
-      # enable disable read button
-      resourceMap = Ops.get(Y2ModuleConfig.ModuleMap, selectedModule, {})
-      clonable = Ops.get_string(
-        resourceMap,
-        "X-SuSE-YaST-AutoInstClonable",
-        "false"
-      ) == "true"
-      if !clonable && "software" != selectedModule &&
-          "partitioning" != selectedModule &&
-          "bootloader" != selectedModule
-        UI.ChangeWidget(Id(:read), :Enabled, false)
-      end
+
+      # set read button status
+      resourceMap = Y2ModuleConfig.ModuleMap.fetch(selectedModule, {})
+      clonable = resourceMap["X-SuSE-YaST-AutoInstClonable"] == "true"
+
+      clone_button_status = clonable || 
ALWAYS_CLONABLE_MODULES.include?(selectedModule)
+      UI.ChangeWidget(Id(:read), :Enabled, clone_button_status)
 
       nil
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/include/autoinstall/xml.rb 
new/autoyast2-3.1.51/src/include/autoinstall/xml.rb
--- old/autoyast2-3.1.45/src/include/autoinstall/xml.rb 2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/include/autoinstall/xml.rb 2014-07-25 
14:10:09.000000000 +0200
@@ -59,6 +59,9 @@
           "masquerade_users"         => "masquerade_user",
           "virtual_users"            => "virtual_user",
           "services"                 => "service",
+          # services-manager -> (hash) services -> (list) enable/disable -> 
service
+          "enable"                   => "service",
+          "disable"                  => "service",
           "modules_conf"             => "module_conf",
           "interfaces"               => "interface",
           "routes"                   => "route",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/modules/AutoinstClone.rb 
new/autoyast2-3.1.51/src/modules/AutoinstClone.rb
--- old/autoyast2-3.1.45/src/modules/AutoinstClone.rb   2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/modules/AutoinstClone.rb   2014-07-25 
14:10:09.000000000 +0200
@@ -19,6 +19,8 @@
 
 module Yast
   class AutoinstCloneClass < Module
+    include Yast::Logger
+
     def main
       Yast.import "Mode"
 
@@ -177,7 +179,7 @@
     # Build the profile
     # @return [void]
     def Process
-      Builtins.y2debug("Additional resources: %1 %2", @base, @additional)
+      log.info "Base resources: #{@base} additional: #{@additional}"
       Profile.Reset
       Profile.prepare = true
       Mode.SetMode("autoinst_config")
@@ -190,9 +192,12 @@
           ""
         )
         resource = def_resource if resource == ""
-        Builtins.y2debug("current resource: %1", resource)
-        if Builtins.contains(@additional, resource)
+
+        if @additional.include?(resource)
+          log.info "Now cloning: #{resource}"
+          time_start = Time.now
           ret = CommonClone(def_resource, resourceMap)
+          log.info "Cloning #{resource} took: #{(Time.now - time_start).round} 
sec"
         end
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/modules/AutoinstSoftware.rb 
new/autoyast2-3.1.51/src/modules/AutoinstSoftware.rb
--- old/autoyast2-3.1.45/src/modules/AutoinstSoftware.rb        2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/modules/AutoinstSoftware.rb        2014-07-25 
14:10:09.000000000 +0200
@@ -866,6 +866,7 @@
 
       computed_packages = Packages.ComputeSystemPackageList
       Builtins.y2debug("Computed list of packages: %1", computed_packages)
+      Pkg.DoProvide(computed_packages)
 
       Builtins.foreach(computed_packages) do |pack2|
         if Ops.greater_than(Builtins.size(@kernel), 0) && pack2 != @kernel &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/modules/Profile.rb 
new/autoyast2-3.1.51/src/modules/Profile.rb
--- old/autoyast2-3.1.45/src/modules/Profile.rb 2014-07-16 15:14:52.000000000 
+0200
+++ new/autoyast2-3.1.51/src/modules/Profile.rb 2014-07-25 14:10:09.000000000 
+0200
@@ -342,6 +342,9 @@
       e = []
 
       Builtins.foreach(@ModuleMap) do |p, d|
+        # bnc#887115 Hidden modules cannot be cloned
+        next if d["Hidden"] == "true"
+
         #
         # Set resource name, if not using default value
         #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/modules/Y2ModuleConfig.rb 
new/autoyast2-3.1.51/src/modules/Y2ModuleConfig.rb
--- old/autoyast2-3.1.45/src/modules/Y2ModuleConfig.rb  2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/modules/Y2ModuleConfig.rb  2014-07-25 
14:10:09.000000000 +0200
@@ -42,6 +42,7 @@
         "Name",
         "GenericName",
         "Icon",
+        "Hidden",
         "X-SuSE-YaST-AutoInst",
         "X-SuSE-YaST-AutoInstResource",
         "X-SuSE-YaST-AutoInstClient",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.45/src/scrconf/autoinstall.scr 
new/autoyast2-3.1.51/src/scrconf/autoinstall.scr
--- old/autoyast2-3.1.45/src/scrconf/autoinstall.scr    2014-07-16 
15:14:52.000000000 +0200
+++ new/autoyast2-3.1.51/src/scrconf/autoinstall.scr    2014-07-25 
14:10:09.000000000 +0200
@@ -1,6 +1,6 @@
 /**
- * File:       yast2_desktop.scr
- * Summary:    Agent for reading/writing yast2 menuentries
+ * File:       autoinstall.scr
+ * Summary:    Agent for reading desktop files
  * Author:     Michal Svec <[email protected]>
  *                     Anas Nashif <[email protected]>
  * Access:     read / write
@@ -20,7 +20,7 @@
     `IniAgent( [ "/usr/share/applications/YaST2/*.desktop" , 
"/usr/share/autoinstall/modules/*.desktop" ],
        $[
            "options"   : [ ],
-           "comments"  : [ "^[ \t]*;.*", ";.*", "\\{[^}]*\\}", "^[ \t]*$" ],
+           "comments"  : [ "^[ \t]*;.*", ";.*", "\\{[^}]*\\}", "^[ \t]*$", 
"^#[ \t].*" ],
            "sections"  : [
                $[ "begin" : [
                    "^[ \t]*\\[[ \t]*(.*[^ \t])[ \t]*\\][ \t]*",

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to