Version Notes
Bugfix:
- Atualização do WebService de Rastreamento dos Correios
Download this release
Release Info
| Developer | Pedro Teixeira |
| Extension | PedroTeixeira_Correios |
| Version | 4.7.1 |
| Comparing to | |
| See all releases | |
Code changes from version 4.7.0 to 4.7.1
app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php
CHANGED
|
@@ -583,94 +583,118 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
| 583 |
}
|
| 584 |
|
| 585 |
/**
|
| 586 |
-
*
|
| 587 |
-
*
|
| 588 |
* @param string $code Code
|
| 589 |
-
*
|
| 590 |
-
* @return bool
|
|
|
|
|
|
|
| 591 |
*/
|
| 592 |
-
protected function
|
| 593 |
{
|
| 594 |
-
$
|
| 595 |
-
$
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 599 |
|
| 600 |
-
$url = 'http://websro.correios.com.br/sro_bin/txect01$.QueryList';
|
| 601 |
-
$url .= '?P_LINGUA=001&P_TIPO=001&P_COD_UNI=' . $code;
|
| 602 |
try {
|
| 603 |
-
$client = new
|
| 604 |
-
$client->
|
| 605 |
-
|
| 606 |
-
|
|
|
|
| 607 |
} catch (Exception $e) {
|
| 608 |
-
$
|
| 609 |
-
return false;
|
| 610 |
}
|
|
|
|
|
|
|
| 611 |
|
| 612 |
-
|
| 613 |
-
|
| 614 |
-
|
| 615 |
-
|
| 616 |
-
|
| 617 |
-
|
| 618 |
-
|
| 619 |
-
|
| 620 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 621 |
}
|
|
|
|
|
|
|
| 622 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 623 |
$progress = array();
|
| 624 |
-
|
| 625 |
-
$column = $columns[$i][1];
|
| 626 |
-
|
| 627 |
-
$description = '';
|
| 628 |
-
$found = false;
|
| 629 |
-
if (preg_match('/<td rowspan="?2"?/i', $column)
|
| 630 |
-
&& preg_match(
|
| 631 |
-
'/<td rowspan="?2"?>(.*)<\/td><td>(.*)<\/td><td><font color="[A-Z0-9]{6}">(.*)<\/font><\/td>/i',
|
| 632 |
-
$column,
|
| 633 |
-
$matches
|
| 634 |
-
)
|
| 635 |
-
) {
|
| 636 |
-
if (preg_match('/<td colspan="?2"?>(.*)<\/td>/i', $columns[$i + 1][1], $matchesDescription)) {
|
| 637 |
-
$description = str_replace(' ', '', $matchesDescription[1]);
|
| 638 |
-
}
|
| 639 |
|
| 640 |
-
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
$
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
|
|
|
|
| 648 |
}
|
|
|
|
| 649 |
|
| 650 |
-
|
| 651 |
-
|
| 652 |
-
|
| 653 |
-
$date = '';
|
| 654 |
-
$date = new Zend_Date($datetime[0], 'dd/MM/YYYY', $locale);
|
| 655 |
-
|
| 656 |
-
$track = array(
|
| 657 |
-
'deliverydate' => $date->toString('YYYY-MM-dd'),
|
| 658 |
-
'deliverytime' => $datetime[1] . ':00',
|
| 659 |
-
'deliverylocation' => htmlentities($matches[2], ENT_IGNORE, 'ISO-8859-1'),
|
| 660 |
-
'status' => htmlentities($matches[3], ENT_IGNORE, 'ISO-8859-1'),
|
| 661 |
-
'activity' => htmlentities($matches[3], ENT_IGNORE, 'ISO-8859-1')
|
| 662 |
-
);
|
| 663 |
-
|
| 664 |
-
if ($description !== '') {
|
| 665 |
-
$track['activity'] = $matches[3] . ' - ' . htmlentities($description, ENT_IGNORE, 'ISO-8859-1');
|
| 666 |
-
}
|
| 667 |
|
| 668 |
-
|
| 669 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 670 |
}
|
| 671 |
|
|
|
|
| 672 |
if (!empty($progress)) {
|
| 673 |
-
$track
|
| 674 |
$track['progressdetail'] = $progress;
|
| 675 |
|
| 676 |
$tracking = Mage::getModel('shipping/tracking_result_status');
|
| 583 |
}
|
| 584 |
|
| 585 |
/**
|
| 586 |
+
* Loads the parameters and calls the webservice using SOAP
|
| 587 |
+
*
|
| 588 |
* @param string $code Code
|
| 589 |
+
*
|
| 590 |
+
* @return bool|array
|
| 591 |
+
*
|
| 592 |
+
* @throws Exception
|
| 593 |
*/
|
| 594 |
+
protected function _getTrackingRequest($code)
|
| 595 |
{
|
| 596 |
+
$response = false;
|
| 597 |
+
$params = array(
|
| 598 |
+
'usuario' => $this->getConfigData('sro_username'),
|
| 599 |
+
'senha' => $this->getConfigData('sro_password'),
|
| 600 |
+
'tipo' => $this->getConfigData('sro_type'),
|
| 601 |
+
'resultado' => 'T',
|
| 602 |
+
'lingua' => $this->getConfigData('sro_language'),
|
| 603 |
+
'objetos' => $code,
|
| 604 |
+
);
|
| 605 |
|
|
|
|
|
|
|
| 606 |
try {
|
| 607 |
+
$client = new SoapClient($this->getConfigData('url_sro_correios'));
|
| 608 |
+
$response = $client->buscaEventos($params);
|
| 609 |
+
if (empty($response)) {
|
| 610 |
+
throw new Exception("Empty response");
|
| 611 |
+
}
|
| 612 |
} catch (Exception $e) {
|
| 613 |
+
Mage::log("Soap Error: {$e->getMessage()}");
|
|
|
|
| 614 |
}
|
| 615 |
+
return $response;
|
| 616 |
+
}
|
| 617 |
|
| 618 |
+
/**
|
| 619 |
+
* Loads tracking progress details
|
| 620 |
+
*
|
| 621 |
+
* @param SimpleXMLElement $evento XML Element Node
|
| 622 |
+
* @param bool $isDelivered Delivery Flag
|
| 623 |
+
*
|
| 624 |
+
* @return array
|
| 625 |
+
*/
|
| 626 |
+
protected function _getTrackingProgressDetails(SimpleXMLElement $evento, $isDelivered=false)
|
| 627 |
+
{
|
| 628 |
+
$date = new Zend_Date($evento->data, 'dd/MM/YYYY', new Zend_Locale('pt_BR'));
|
| 629 |
+
$track = array(
|
| 630 |
+
'deliverydate' => $date->toString('YYYY-MM-dd'),
|
| 631 |
+
'deliverytime' => $evento->hora . ':00',
|
| 632 |
+
'status' => $evento->descricao,
|
| 633 |
+
);
|
| 634 |
+
if (!$isDelivered) {
|
| 635 |
+
$msg = array($evento->descricao);
|
| 636 |
+
if (isset($evento->destino) && isset($evento->destino->local)) {
|
| 637 |
+
$msg = array("{$evento->descricao} para {$evento->destino->local}");
|
| 638 |
+
}
|
| 639 |
+
$track['activity'] = implode(' | ', $msg);
|
| 640 |
+
$track['deliverylocation'] = "{$evento->local} - {$evento->cidade}/{$evento->uf}";
|
| 641 |
}
|
| 642 |
+
return $track;
|
| 643 |
+
}
|
| 644 |
|
| 645 |
+
/**
|
| 646 |
+
* Loads progress data using the WSDL response
|
| 647 |
+
*
|
| 648 |
+
* @param string $request Request response
|
| 649 |
+
*
|
| 650 |
+
* @return array
|
| 651 |
+
*/
|
| 652 |
+
protected function _getTrackingProgress($request)
|
| 653 |
+
{
|
| 654 |
+
$track = array();
|
| 655 |
$progress = array();
|
| 656 |
+
$eventTypes = explode(',', $this->getConfigData("sro_event_type_last"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 657 |
|
| 658 |
+
if (count($request->return->objeto->evento) == 1) {
|
| 659 |
+
$progress[] = $this->_getTrackingProgressDetails($request->return->objeto->evento);
|
| 660 |
+
} else {
|
| 661 |
+
foreach ($request->return->objeto->evento as $evento) {
|
| 662 |
+
$progress[] = $this->_getTrackingProgressDetails($evento);
|
| 663 |
+
$isDelivered = ((int) $evento->status < 2 && in_array($evento->tipo, $eventTypes));
|
| 664 |
+
if ($isDelivered) {
|
| 665 |
+
$track = $this->_getTrackingProgressDetails($evento, $isDelivered);
|
| 666 |
+
}
|
| 667 |
}
|
| 668 |
+
}
|
| 669 |
|
| 670 |
+
$progress[] = $track;
|
| 671 |
+
return $progress;
|
| 672 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 673 |
|
| 674 |
+
/**
|
| 675 |
+
* Protected Get Tracking, opens the request to Correios
|
| 676 |
+
*
|
| 677 |
+
* @param string $code Code
|
| 678 |
+
*
|
| 679 |
+
* @return bool
|
| 680 |
+
*/
|
| 681 |
+
protected function _getTracking($code)
|
| 682 |
+
{
|
| 683 |
+
$error = Mage::getModel('shipping/tracking_result_error');
|
| 684 |
+
$error->setTracking($code);
|
| 685 |
+
$error->setCarrier($this->_code);
|
| 686 |
+
$error->setCarrierTitle($this->getConfigData('title'));
|
| 687 |
+
$error->setErrorMessage($this->getConfigData('urlerror'));
|
| 688 |
+
|
| 689 |
+
$request = $this->_getTrackingRequest($code);
|
| 690 |
+
if (!isset($request->return)) {
|
| 691 |
+
$this->_result->append($error);
|
| 692 |
+
return false;
|
| 693 |
}
|
| 694 |
|
| 695 |
+
$progress = $this->_getTrackingProgress($request);
|
| 696 |
if (!empty($progress)) {
|
| 697 |
+
$track = array_pop($progress);
|
| 698 |
$track['progressdetail'] = $progress;
|
| 699 |
|
| 700 |
$tracking = Mage::getModel('shipping/tracking_result_status');
|
app/code/community/PedroTeixeira/Correios/Model/Sro.php
CHANGED
|
@@ -48,38 +48,37 @@ class PedroTeixeira_Correios_Model_Sro extends Varien_Object
|
|
| 48 |
/**
|
| 49 |
* Load XML response from Correios
|
| 50 |
*
|
| 51 |
-
* @param string $
|
| 52 |
*
|
| 53 |
-
* @throws
|
| 54 |
*
|
| 55 |
* @link http://www.correios.com.br/para-voce/correios-de-a-a-z/pdf/rastreamento-de-objetos/
|
| 56 |
* Manual_SROXML_28fev14.pdf
|
|
|
|
|
|
|
| 57 |
*
|
| 58 |
-
* @return
|
| 59 |
*/
|
| 60 |
-
public function request($
|
| 61 |
{
|
| 62 |
-
$
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
|
|
|
|
|
|
|
|
|
| 68 |
try {
|
| 69 |
-
$
|
|
|
|
| 70 |
if (empty($response)) {
|
| 71 |
-
throw new
|
| 72 |
-
}
|
| 73 |
-
libxml_use_internal_errors(true);
|
| 74 |
-
$this->_xml = simplexml_load_string($response);
|
| 75 |
-
if (!$this->_xml || !isset($this->_xml->objeto)) {
|
| 76 |
-
throw new Zend_Http_Client_Adapter_Exception("Invalid XML");
|
| 77 |
}
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
Mage::log("
|
| 81 |
-
Mage::log("RESPONSE: {$response}");
|
| 82 |
-
return false;
|
| 83 |
}
|
| 84 |
return $this;
|
| 85 |
}
|
| 48 |
/**
|
| 49 |
* Load XML response from Correios
|
| 50 |
*
|
| 51 |
+
* @param string $trackingCode Tracking Code
|
| 52 |
*
|
| 53 |
+
* @throws Exception
|
| 54 |
*
|
| 55 |
* @link http://www.correios.com.br/para-voce/correios-de-a-a-z/pdf/rastreamento-de-objetos/
|
| 56 |
* Manual_SROXML_28fev14.pdf
|
| 57 |
+
* @link http://www.corporativo.correios.com.br/encomendas/sigepweb/doc/
|
| 58 |
+
* Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf
|
| 59 |
*
|
| 60 |
+
* @return boolean|PedroTeixeira_Correios_Model_Sro
|
| 61 |
*/
|
| 62 |
+
public function request($trackingCode)
|
| 63 |
{
|
| 64 |
+
$params = array(
|
| 65 |
+
'usuario' => $this->getConfigData('sro_username'),
|
| 66 |
+
'senha' => $this->getConfigData('sro_password'),
|
| 67 |
+
'tipo' => $this->getConfigData('sro_type'),
|
| 68 |
+
'resultado' => $this->getConfigData('sro_result'),
|
| 69 |
+
'lingua' => $this->getConfigData('sro_language'),
|
| 70 |
+
'objetos' => $trackingCode,
|
| 71 |
+
);
|
| 72 |
+
|
| 73 |
try {
|
| 74 |
+
$client = new SoapClient($this->getConfigData('url_sro_correios'));
|
| 75 |
+
$response = $client->buscaEventos($params);
|
| 76 |
if (empty($response)) {
|
| 77 |
+
throw new Exception("Empty response");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
}
|
| 79 |
+
$this->_xml = $response->return;
|
| 80 |
+
} catch (Exception $e) {
|
| 81 |
+
Mage::log("Soap Error: {$e->getMessage()}");
|
|
|
|
|
|
|
| 82 |
}
|
| 83 |
return $this;
|
| 84 |
}
|
app/code/community/PedroTeixeira/Correios/etc/config.xml
CHANGED
|
@@ -421,7 +421,8 @@
|
|
| 421 |
<sro_password>SRO</sro_password>
|
| 422 |
<sro_type>L</sro_type>
|
| 423 |
<sro_result>U</sro_result>
|
| 424 |
-
|
|
|
|
| 425 |
<sro_event_type_notify>BDE,BDI,BDR,FC,LDI,OEC</sro_event_type_notify>
|
| 426 |
<sro_event_status_notify_bde>0,1,2,7,20,24,25,34,45,54,55</sro_event_status_notify_bde>
|
| 427 |
<sro_event_status_notify_bdi>0,1,2,7,20,24,25,34,45,54,55</sro_event_status_notify_bdi>
|
|
@@ -443,8 +444,8 @@
|
|
| 443 |
<sro_event_status_last_bde>0,1</sro_event_status_last_bde>
|
| 444 |
<sro_event_status_last_bdi>0,1</sro_event_status_last_bdi>
|
| 445 |
<sro_event_status_last_bdr>0,1</sro_event_status_last_bdr>
|
| 446 |
-
|
| 447 |
-
<url_sro_correios>http://
|
| 448 |
<url_tracking>http://websro.correios.com.br/sro_bin/txect01$.QueryList</url_tracking>
|
| 449 |
|
| 450 |
<!-- CACHE -->
|
| 421 |
<sro_password>SRO</sro_password>
|
| 422 |
<sro_type>L</sro_type>
|
| 423 |
<sro_result>U</sro_result>
|
| 424 |
+
<sro_language>101</sro_language>
|
| 425 |
+
|
| 426 |
<sro_event_type_notify>BDE,BDI,BDR,FC,LDI,OEC</sro_event_type_notify>
|
| 427 |
<sro_event_status_notify_bde>0,1,2,7,20,24,25,34,45,54,55</sro_event_status_notify_bde>
|
| 428 |
<sro_event_status_notify_bdi>0,1,2,7,20,24,25,34,45,54,55</sro_event_status_notify_bdi>
|
| 444 |
<sro_event_status_last_bde>0,1</sro_event_status_last_bde>
|
| 445 |
<sro_event_status_last_bdi>0,1</sro_event_status_last_bdi>
|
| 446 |
<sro_event_status_last_bdr>0,1</sro_event_status_last_bdr>
|
| 447 |
+
|
| 448 |
+
<url_sro_correios>http://webservice.correios.com.br/service/rastro/Rastro.wsdl</url_sro_correios>
|
| 449 |
<url_tracking>http://websro.correios.com.br/sro_bin/txect01$.QueryList</url_tracking>
|
| 450 |
|
| 451 |
<!-- CACHE -->
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>PedroTeixeira_Correios</name>
|
| 4 |
-
<version>4.7.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/mit-license.php">MIT License</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -28,26 +28,11 @@ Conta com identificação de erros dos Correios, mão própria,
|
|
| 28 |
Mais informações em https://pedroteixeira.io.</description>
|
| 29 |
<notes>Bugfix:
|
| 30 |

|
| 31 |
-
-
|
| 32 |
-
- Configuração de ajuste
|
| 33 |
-
- Added Validation to null postcode in cart update
|
| 34 |
-
- Removida a função trim em contexto de variável
|
| 35 |
-
- Correção para Warning: Invalid argument supplied for foreach
|
| 36 |
-
- Fix noservices error
|
| 37 |
-
- Correção para referência de items para cálculo do request
|
| 38 |
-

|
| 39 |
-
Feature:
|
| 40 |
-

|
| 41 |
-
- Adicionada compatibilidade com pacote de produtos
|
| 42 |
-
- Monitoramento Automático da Encomenda, e Atualização do Status da Entrega
|
| 43 |
-
- Adicionado serviço 40436 com contrato
|
| 44 |
-
- Instalando com Modgit
|
| 45 |
-
- Evitando load de produto
|
| 46 |
-
- Aba dos Correios na edição de produtos</notes>
|
| 47 |
<authors><author><name>Pedro Teixeira</name><user>teixeirapedro</user><email>hello@pedroteixeira.io</email></author></authors>
|
| 48 |
-
<date>2016-
|
| 49 |
-
<time>
|
| 50 |
-
<contents><target name="magecommunity"><dir name="PedroTeixeira"><dir name="Correios"><dir name="Helper"><file name="Data.php" hash="a030f07c60af40e9817054800096207f"/></dir><dir name="Model"><file name="Cache.php" hash="63903ef57e86e2be3cd79787063f3946"/><dir name="Carrier"><file name="CorreiosMethod.php" hash="
|
| 51 |
<compatible/>
|
| 52 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name/><channel>connect.magentocommerce.com/core</channel><min/><max/></package></required></dependencies>
|
| 53 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>PedroTeixeira_Correios</name>
|
| 4 |
+
<version>4.7.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/mit-license.php">MIT License</license>
|
| 7 |
<channel>community</channel>
|
| 28 |
Mais informações em https://pedroteixeira.io.</description>
|
| 29 |
<notes>Bugfix:
|
| 30 |

|
| 31 |
+
- Atualização do WebService de Rastreamento dos Correios</notes>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
<authors><author><name>Pedro Teixeira</name><user>teixeirapedro</user><email>hello@pedroteixeira.io</email></author></authors>
|
| 33 |
+
<date>2016-06-17</date>
|
| 34 |
+
<time>13:04:20</time>
|
| 35 |
+
<contents><target name="magecommunity"><dir name="PedroTeixeira"><dir name="Correios"><dir name="Helper"><file name="Data.php" hash="a030f07c60af40e9817054800096207f"/></dir><dir name="Model"><file name="Cache.php" hash="63903ef57e86e2be3cd79787063f3946"/><dir name="Carrier"><file name="CorreiosMethod.php" hash="096daa6f10c197dc5a69d721d4e19d2f"/></dir><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Socket.php" hash="76da85f117c3f9950164a5d90500d82f"/></dir></dir></dir><file name="Observer.php" hash="10d46e3849f531cef13a6ee6dfc6dfa9"/><dir name="Source"><file name="CacheMode.php" hash="b34ae611b8bf913e4b646f4a156cc2a4"/><file name="PostMethods.php" hash="22f500a45f51515409fa9367d0a5e957"/><file name="WeightType.php" hash="4bf1608fb6b665dcc7d834ca35eee174"/></dir><file name="Sro.php" hash="fd8f738371ed437c6f8002d2d47debfa"/></dir><dir name="etc"><file name="config.xml" hash="eb6e65fbc48ae827eb68455e4a0d982a"/><file name="system.xml" hash="a176657e9f5565ef20d101059cca833c"/></dir><dir name="sql"><dir name="pedroteixeira_correios_setup"><file name="install-4.0.0.php" hash="eda109c002d9130fc1ce807784aa60a3"/><file name="install-4.4.0.php" hash="889c7376ee7bdd30bf07616b4f365e3b"/><file name="install-4.5.0.php" hash="e0daaac3649b166a33928da3844ad965"/><file name="install-4.6.0.php" hash="5168cdf9b1e60480d5bc90951c69cb20"/><file name="install-4.7.0.php" hash="ad7b3434d1c5fbb0b49212e8bc5923b9"/><file name="upgrade-4.0.0-4.1.0.php" hash="ca42fdabb0975f60d8cf5ef5ab122acd"/><file name="upgrade-4.1.0-4.2.0.php" hash="319cd1c4ddaa745da9af4a5111aa1534"/><file name="upgrade-4.2.0-4.3.0.php" hash="783e854d19b0e4915360cc1ec8b4d2d0"/><file name="upgrade-4.3.0-4.4.0.php" hash="982f41d3a113d21c4008de7e63918e45"/><file name="upgrade-4.4.0-4.5.0.php" hash="95dfd40fa6469a711b4b65a331f0b1b7"/><file name="upgrade-4.5.0-4.6.0.php" hash="24686aec7822436598e94680e3e6a948"/><file name="upgrade-4.6.0-4.7.0.php" hash="d12205fcbe16e21bdf233eae06500998"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PedroTeixeira_Correios.xml" hash="e714579bed97c85f2bcc3988dec271da"/></dir></target></contents>
|
| 36 |
<compatible/>
|
| 37 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name/><channel>connect.magentocommerce.com/core</channel><min/><max/></package></required></dependencies>
|
| 38 |
</package>
|
